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

idc.csl1975.com    集成有复制、粘贴功能的文本编辑器django-ck「2024-8-15 14:57:50」
Male
小人物
Django5.1建站-流程及语句==环境:windows10专业版+python版本3.12【请先安装】+pycharm版本2024.1.4【请先安装】第五天 写作时间:2024年8月15日
Django后天管理集成文本编辑器django-ckeditor

一、集成有复制、粘贴功能的文本编辑器django-ckeditor

1、安装库: pip install -i https://pypi.mirrors.ustc.edu.cn/simple/ ;django-ckeditor

2、注册应用: 在settings.py文件的INSTALLED_APPS下加入  ckeditor,

3、配置model.py:输入如下代码

from django.db import models
from ckeditor.fields import RichTextField
 
class Blog(models.Model):     #请将此类代码放在第一个位置
    title = models.CharField(max_length=50)
    content = RichTextField()    #请替换相应应用的函数,以启用文本编辑器
如:
#class PostInfo(models.Model):
    #user = models.ForeignKey(UserInfo, on_delete=models.CASCADE,verbose_name=栏目类别)
    #title = models.CharField(max_length=50,verbose_name=标题)
    #content = RichTextField(verbose_name=内容)       #<---- 比如这个地方就被替换成了 RichTextField 函数

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

5、启动程序,进入后台管理,添加文章,内容位置就显示为文本编辑器了。
【可以实现复制、粘贴功能,用以发布信息】

idc.csl1975.com    富文本编辑器Django-ckeditor教程网址「2024-8-14 21:11:55」
Male
小人物
富文本编辑器Django-ckeditor教程网址

1、https://blog.51cto.com/u_15127627/4147849

2、https://blog.csdn.net/liulunan_lln/article/details/140473132

idc.csl1975.com    文本编辑器「2024-8-13 20:31:00」
Male
小人物
1、修改views.py,新闻以倒序排列 20240813
PostInfos = PostInfo.objects.all().order_by(-id)


2、django-mdeditor
https://www.cnblogs.com/fuchangjiang/p/17652446.html


idc.csl1975.com    添加+减少库「2024-8-13 16:38:36」
Male
小人物
1、添加 库
pip install -i https://pypi.mirrors.ustc.edu.cn/simple/


pip install -i https://pypi.tuna.tsinghua.edu.cn/simple/

2、减少 库
pip uninstall

idc.csl1975.com    创建+激活——虚拟环境「2024-8-13 16:27:23」
Male
小人物

1、创建 虚拟环境:
打开pycharm终端---  提示行显示 ”ps C:\Django-xiangmu\myTest2>“ --- 在此输入”py -m venv .venv“ 
                          --- 创建虚拟环境 .venv --- 提示行仍然显示”PS C:\Django-xiangmu\myTest2>“ 

2、激活 虚拟环境:
在 PS C:\Django-xiangmu\myTest2> 输入”.venv\Scripts\activate“ ---  作用:激活虚拟环境
--- 提示行显示”(.venv) PS C:\Django-xiangmu\myTest2>“ --- 进入了 (.venv)  虚拟环境中

3、在终端启动项目: 输入 python manage.py runserver

idc.csl1975.com    pycharm打开django项目「2024-8-13 16:22:28」
Male
小人物
1、打开项目
启动pycharm2024---打开---选择项目所在的目录,如”C:\Django-xiangmu\myproject003“
---显示”项目所有的文件(可能.venv虚拟环境是红色的,属于正常的情况。)

2、添加python编辑器---自动创建虚拟环境venv
右下角点击“添加编辑器”---添加本地编辑器---左上角选择virualenv环境---新建
---位置,如”C:\Django-xiangmu\myproject003\venv"  【确保此位置文件夹是空白,否则,无法创建】
---基础编辑器,如“c:\python312\python.exe” (就是在系统中已安装的python地址)
---显示“python编辑器为python3.12,项目目录myproject003下多出venv(虚拟环境)文件夹 ”
---终端变成 ”(venv) PS C:\Django-xiangmu\myproject003> “

3、在终端启动项目: 输入 python manage.py runserver 或点击顶部绿色三角 
显示“System check identified no issues (0 silenced).
August 13, 2024 - 16:06:32
Django version 5.1, using settings myproject003.settings
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.”
---点击 http://127.0.0.1:8000/ ;可以看到网站首页

idc.csl1975.com    pycharm安装django框架「2024-8-12 19:34:54」
Male
小人物
pycharm安装django框架详细图文教程(指定版本)

https://www.jb51.net/python/301716m3w.htm

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
,本周一定会补了。迎接三中全会,轻装上涨吧!
当前页:3 总页数:4 每页:10 总记录:34 | 首页  上一页  下一页  尾页 
页码:[1][2][3][4]
您是本站的第 位访客!

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