请写留言
  【留言公告】
1、随便说说。
2、请勿恶意广告,否则屏蔽后不再解封!
3、祝各位愉快的留言!

idc.csl1975.com    Django5.0建网站「2024-8-12 9:35:14」
Male
小人物
Django5.1建站-流程及语句==环境:windows10专业版+python版本3.12【请先安装】+pycharm版本2024.1.4【请先安装】
写作时间:2024年8月11日
--------------------------------------------------------------------------------------------------------------------------------------------------

一、创建项目+基础设置+启动程序-显示成功页面

1、创建项目:打开pycharm-新建项目-选择Django-填写项目名称为myproject003-位置改为c:\Django-xiangmu【请手动新建这个目录】-选择生成新的-类型Vitualenv-基础python-勾选“从基础解释器中继承软件包”+“可用于所有项目”-【创建项目时,自动安装Django5.1】

2、查看已安装的库文件:打开终端(快捷键alt+f12)-输入 pip list -显示最新的django5.1版本和相应的库文件【如不符合,请修改成Django5.1】

3、创建应用app:在终端中输入 python manage.py startapp myapp001 -项目myproject003的同目录,会多出myapp001目录+db.sqlite3

4、打开myproject003目录下的setting.py文件-注册myapp001(在INSTALLED_APPS = [ ]中的末尾添加  myapp001,   注意不能丢失逗号 )

5、继续在setting中-修改成中文显示  LANGUAGE_CODE = zh-hans   、 TIME_ZONE = Asia/Shanghai 

6、点击又上角项目启动按钮(快捷键shift+f10),或在终端中输入 python manage.py runserver  (退出按键 CTRL-BREAK.)

7、点击http://127.0.0.1:8000/,浏览器显示飞起的小火箭,显示Django5.0页面,说明Django项目安装成功。

--------------------------------------------------------------------------------------------------------------------------------------------------

二、完成了后台管理内容的增、删、改、查。【models.py编辑】

8、生成项目原始+应用app的数据表【数据库sqlite3】+创建超级管理员账户和密码
     打开终端(快捷键alt+f12)-输入python manage.py migrate (生成数据表)
                             -输入python manage.py createsuperuser (创建超级管理员)

9、点击http://127.0.0.1:8000/admin,输入超级管理员账户和密码,登录后台。

10、用sqlitestudio软件【请先安装】,查看数据库文件内容-数据库文件地址 C:\Django_xiangmu\myproject003\db.sqlite3  ---打开auth_user表-点击数据-可以看到超级管理员账号和密码

11、定义数据模型:打开myapp001下models.py,输入如下代码:

from django.db import models #引入django.db.models模块

#这个例子中,我们定义了两个模型类:UserInfo和PostInfo。
# UserInfo用于存储用户信息,包括用户名、密码和电子邮件地址。(后来改为”栏目列别“)
# PostInfo用于存储帖子信息,包括发帖用户、标题、内容和创建时间。两个模型通过ForeignKey字段关联,确保每个帖子都关联到一个用户信息。(后来改为”内容列表“)
# 输入如下模型语句后,在终端中输入    python manage.py makemigrations     #生成迁移文件
#                                     python manage.py migrate            #迁移数据库,创建新表
# 就可以在 数据库sqlite3 中创建 myapp001_userinfo 和 myapp001_postinfo 这2个表及里面的字段

# 用户信息模型
class UserInfo(models.Model):
    username = models.CharField(max_length=30)
    password = models.CharField(max_length=30)
    email = models.EmailField()

    def __str__(self):
        return self.username

# 帖子信息模型
class PostInfo(models.Model):
    user = models.ForeignKey(UserInfo, on_delete=models.CASCADE)
    title = models.CharField(max_length=50)
    content = models.TextField()
    create_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

12、在数据库中创建表及字段:

输入如上模型语句后,在终端中输入    python manage.py makemigrations     #生成迁移文件
                                    python manage.py migrate            #迁移数据库,创建新表
就可以在 数据库sqlite3 中创建 myapp001_userinfo 和 myapp001_postinfo 这2个表及里面的字段

13、定义好数据模型,就可以配置管理后台了,在myapp001下的admin.py文件中写入如下代码:

from django.contrib import admin
from .models import UserInfo,PostInfo    #引入myapp001模型下面的所有数据类型

admin.site.register(UserInfo)
admin.site.register(PostInfo)

14、浏览器打开后台管理页面 http://localhost:8000/ ;,输入超级管理员账号和密码,
       显示站点管理列表,包括创建的应用myapp001和认证-授权2个部分,
       在myapp001列表下,还有创建的数据模型postinfos和userinfos这2个部分。

15、将username显示为中文”栏目类别“:(其他类似)
username = models.CharField(max_length=30,verbose_name=栏目类别)

16、输入如上模型语句后,在终端中输入    python manage.py makemigrations     #生成迁移文件
                                        python manage.py migrate            #迁移数据库,创建新表

****** 提示:修改 models.py 后,必须执行如上代码,完成 数据迁移+创建新表 动作。******

17、在admin后台管理页面,进行添加、删除、修改等操作,已增加数据库内容,并可以用数据库软件查看相关变化。
      在admin后台管理页面里,添加”栏目类别“和”内容列表“3条记录内容,后面前台调用需要用到。

****** 至此,完成了后台管理内容的增、删、改、查。 ******
--------------------------------------------------------------------------------------------------------------------------------------------------

三、完成前台页面的显示

18、在Django中,要实现前台内容的显示,

通常需要创建模型(Models)、编写视图(Views)、设计模板(Templates),并通过URL配置将它们连接起来。

---111---定义模型(在models.py中):

from django.db import models #引入django.db.models模块

#这个例子中,我们定义了两个模型类:UserInfo和PostInfo。
# UserInfo用于存储用户信息,包括用户名、密码和电子邮件地址。
# PostInfo用于存储帖子信息,包括发帖用户、标题、内容和创建时间。两个模型通过ForeignKey字段关联,确保每个帖子都关联到一个用户信息。
# 输入如下模型语句后,在终端中输入    python manage.py makemigrations     #生成迁移文件
#                                     python manage.py migrate            #迁移数据库,创建新表
# 就可以在 数据库sqlite3 中创建 myapp001_userinfo 和 myapp001_postinfo 这2个表及里面的字段

# 用户信息模型(栏目类别)
class UserInfo(models.Model):
    username = models.CharField(max_length=30,verbose_name=栏目类别)
    #verbose_name=用户名称 ,username在后台显示成中文“用户名称”
    #password = models.CharField(max_length=30,verbose_name=密码)
    #email = models.EmailField(verbose_name=邮箱地址)

    def __str__(self):
        return self.username

    class Meta:    #这3条语句,数据模型在后台管理列表显示为中文列表
        verbose_name = (栏目类别)
        verbose_name_plural = (栏目类别)

# 帖子信息模型(内容列表)
class PostInfo(models.Model):
    user = models.ForeignKey(UserInfo, on_delete=models.CASCADE,verbose_name=栏目类别)  
    #两个模型通过ForeignKey字段关联,确保每个帖子都关联到一个用户信息。
    #好像没什么用,主要看网站的定位,就是到底要做什么样的网站,这个才有用处。
    title = models.CharField(max_length=50,verbose_name=标题)
    content = models.TextField(verbose_name=内容)
    create_time = models.DateTimeField(auto_now_add=True) #写入时间,这个是写入数据库的,所以不用写成中文。

    def __str__(self):
        return self.title

    class Meta:    #这3条语句,数据模型在后台管理列表显示为中文列表
        verbose_name = (内容列表)
        verbose_name_plural = (内容列表)

---222---创建视图(在views.py中):

from django.shortcuts import render      #渲染网页的模块
from myapp001.models import UserInfo
from myapp001.models import PostInfo

# Create your views here.

def UserInfo_list(request):   #栏目列表函数
    UserInfos = UserInfo.objects.all()   #读出所有数据
    return render(request, UserInfo.html, {UserInfos: UserInfos})  #渲染到模板+赋值,便于在模板中调用。

def PostInfo_list(request):   #内容列表函数 (同上)
    PostInfos = PostInfo.objects.all()
    return render(request, PostInfo.html, {PostInfos: PostInfos})

---333---设计模板(在templates【请手动在myapp001目录中建立】文件夹中的UserInfo.html中)(PostInfo.html类似,可参照写出来):

<!DOCTYPE html>
<html>
<head>
    <title>栏目列表</title>
</head>
<body>
    <h1>栏目列表</h1>
    <ul>
        {% for UserInfo in UserInfos %}  <!--- python语句 在html中的用法 --->
        <li>
            {{ UserInfo.username }}
        </li>
        {% empty %}
        <li>没有栏目列表</li>
        {% endfor %}
    </ul>
</body>
</html>

---444---配置URL(在urls.py中):

from django.contrib import admin
from django.urls import path
from myapp001.views import UserInfo_list
from myapp001.views import PostInfo_list
from django.conf.urls import include
urlpatterns = [
    path(admin/, admin.site.urls),
    #path(, admin.site.urls),
    #path(myapp001/, view.UserInfo_list, name=UserInfo_list),
    path(userinfos/, UserInfo_list, name=UserInfo_list),  #输入http://localhost:8000/userinfos显示栏目列表
    #path(,include(myapp001.urls))

    path(, PostInfo_list, name=PostInfo_list),

****** 至此,完成了前台显示数据库内容【可能无法链接跳转,请看以下的代码调整】 ******
--------------------------------------------------------------------------------------------------------------------------------------------------

19、一个完整的代码,可以从头到尾的先跑一遍,再从头来过,至少还需要学50次,很多内容还没有接触到!
Django按id显示内容列表的详情页
在Django中,你可以使用类视图DetailView来根据id展示内容的详情页。以下是一个简单的例子:

---111--- 首先,在你的models.py中定义你的【模型】(完整代码):

from django.db import models #引入django.db.models模块

#这个例子中,我们定义了两个模型类:UserInfo和PostInfo。
# UserInfo用于存储用户信息,包括用户名、密码和电子邮件地址。(后改成”栏目类别“)
# PostInfo用于存储帖子信息,包括发帖用户、标题、内容和创建时间。(后改成”内容列表“)两个模型通过ForeignKey字段关联,确保每个帖子都关联到一个用户信息。
# 输入如下模型语句后,在终端中输入    python manage.py makemigrations     #生成迁移文件
#                                     python manage.py migrate            #迁移数据库,创建新表
# 就可以在 数据库sqlite3 中创建 myapp001_userinfo 和 myapp001_postinfo 这2个表及里面的字段

# 用户信息(栏目类别)模型
class UserInfo(models.Model):
    username = models.CharField(max_length=30,verbose_name=栏目类别)   #在二级目录中显示”栏目类别“的中文,其他类似
    #verbose_name=用户名称 ,username在后台显示成中文“用户名称”
    #password = models.CharField(max_length=30,verbose_name=密码)
    #email = models.EmailField(verbose_name=邮箱地址)

    def __str__(self):
        return self.username

    class Meta:    #这3条语句,数据模型在后台管理列表显示为中文列表
        verbose_name = (栏目类别)
        verbose_name_plural = (栏目类别)

# 帖子信息(内容列表)模型
class PostInfo(models.Model):
    user = models.ForeignKey(UserInfo, on_delete=models.CASCADE,verbose_name=栏目类别)
    title = models.CharField(max_length=50,verbose_name=标题)
    content = models.TextField(verbose_name=内容)
    create_time = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        return self.title

    class Meta:    #这3条语句,数据模型在后台管理列表显示为中文列表
        verbose_name = (内容列表)
        verbose_name_plural = (内容列表)

---222--- 然后,在views.py中定义一个【视图】来展示详情页:

from django.shortcuts import render
from myapp001.models import UserInfo
from myapp001.models import PostInfo
from django.views.generic import DetailView #详情页使用
# Create your views here.

def UserInfo_list(request):   #栏目列表函数
    UserInfos = UserInfo.objects.all()  #列出数据库中UserInfo表的所有数据
    return render(request, UserInfo.html, {UserInfos: UserInfos})  #返回并在模板中渲染+赋值

def PostInfo_list(request):   #内容列表函数,同上
    PostInfos = PostInfo.objects.all()
    return render(request, PostInfo.html, {PostInfos: PostInfos})

class PostInfoDetailView(DetailView):  #详情页使用
    model = PostInfo
    template_name = PostInfo_detail.html  # 确保你有这个模板文件【请手动建立,放在myapp001目录中的Templates目录中】

---333--- 接下来,在urls.py中添加一个【URL模式来映射】到这个视图:

from django.contrib import admin
from django.urls import path
from myapp001.views import UserInfo_list
from myapp001.views import PostInfo_list
from django.conf.urls import include
from myapp001.views import PostInfoDetailView  #详情页使用
urlpatterns = [
    path(admin/, admin.site.urls),
    #path(, admin.site.urls),
    #path(myapp001/, view.UserInfo_list, name=UserInfo_list),
    path(userinfos/, UserInfo_list, name=UserInfo_list),     #输入http://localhost:8000/userinfos显示栏目列表
    #path(,include(myapp001.urls))
    path(, PostInfo_list, name=PostInfo_list),  #设置默认首页为内容列表,即打开http://localhost:8000后,可看到数据库中的内容,点解链接并显示详情页。
    path(PostInfo/<int:pk>/, PostInfoDetailView.as_view(), name=PostInfo-detail),  #详情页链接
]

---444--- 最后,在PostInfo_detail.html【模板放在Templates目录中】中,你可以使用模型的属性来展示详情:

<!DOCTYPE html>
<html>
<head>
    <title>{{ object.title }}</title>
</head>
<body>
    PostInfo的详情页
    <h1>{{ object.title }}</h1>
    <p>{{ object.content }}</p>
</body>
</html>

****** 至此,完成了打开http://localhost:8000/,显示内容+链接,点击链接显示详情内容。 ******
--------------------------------------------------------------------------------------------------------------------------------------------------

***2024.08.11很多内容,还需要继续学习,Django还有很多内容,继续加油吧!

idc.csl1975.com    20240731今天是7月份的最后一天「2024-7-31 11:07:48」
Male
小人物
今天是7月份的最后一天,A股上午红了,还是大红,
下午会怎么样?天知道!

idc.csl1975.com    2024.07.08今天的A股全线下跌「2024-7-8 15:40:39」
Male
小人物
市场所有板块全线下跌,收盘2922.45,直指周线缺口2863.00
,本周一定会补了。迎接三中全会,轻装上涨吧!

idc.csl1975.com    2024.06.26周三的A股2972.53「2024-6-26 16:19:33」
Male
小人物
今天的大A,没有像预测的那样跌3%,下午1:30左右开始触底反弹,但总成交量还是减少了48亿元。
今天的红盘,总感觉不踏实,该跌不跌必有鬼!
明天是周四,都有“黑周四”的说法,这样一来,今天进的明天可以卖出获利了,周四会跌3%吗?如果可以,那么周四周五都跌,直接砸穿2864点,补了下面的缺口吧,然后放心的上攻3500点。这个时间段估计要一直到9月底了。
 Herosomy站长回复:估计会的!

idc.csl1975.com    2024.06.25周二的A股2950.00「2024-6-25 16:03:34」
Male
小人物
今天的A股真的是顶呱呱,收盘2950.00,
不说人为的,就是量化的。
不得不佩服,电脑的计算和控盘,
真是一分一毫都不差。
 Herosomy站长回复:

idc.csl1975.com    2024.06.24周一的A股是拉垮的一天「2024-6-24 10:14:50」
Male
小人物
周日就预感到周一的行情,真的如所料,拉垮的很!
不能说是直线下跌,也是缓缓下跌,特别是小盘票!
市场真的是太烂了,6月份的决断是真给力啊。
6月份的最后几个交易日,可能是如24年1月份的行情一样,
可能过了这几天,到7月份就能好起来了吧。
 Herosomy站长回复:
idc.csl1975.com    2024.06.21周五的A股跌穿3000点「2024-6-21 16:36:19」
Male
小人物
今天是雨天,一路既往的下雨,一整天了,就没有天晴的时候!
A股下跌的厉害,一直跌穿了3000点,哎,想说A她不容易啊,千年的3000点!
不知道这波下跌又埋了多少人,击穿了多少人的融资融券盘。
 Herosomy站长回复:拿着吧,总有天晴的时候!
潮起潮落很正常!
当前页:4 总页数:4 每页:10 总记录:37 | 首页  上一页  尾页 
页码:[1][2][3][4]
您是本站的第 位访客!

Copyright © 2009-2025 .All Rights Reserved.Powered by:Herosomy [管理登录]