二、PythonDjango微博通过简单的操作,可以在Django中实现一个博客应用2.1生成带有模板的文件,进入创建的目录上一篇博客,执行以下命令。django-adminstartappblog#也可以使用如下命令pythonmanage.pystartappblog运行命令后生成的目录如下。相关文件解释如下:blog#根目录__init__.pyadmin.py#后台管理apps.py#应用设置相关models.py#模型、数据库相关tests.py#测试相关views.py#视图相关migrations#数据库更改记录文件夹接下来,修改my_website文件夹中的settings.py文件并添加博客应用程序。具体代码如下,重点在最后一行。INSTALLED_APPS=['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','blog',#这个很重要]在Django中,如果要应用模型、静态文件、模板,需要在INSTALLED_APPS中添加对应的应用目录。如果未设置,则不会加载应用程序。2.2创建文章模型和数据库结构一个博客包括标题、内容、发布时间等内容,都是在Django中创建的。修改的核心是models.py文件。fromdjango.dbimportmodels#在这里创建你的模型.classBlog(models.Model):title=models.CharField("title",max_length=100)content=models.TextField("content")creatr_time=models.DateField(“发布时间”)这个类是模型类。要实现一个模型类,需要继承models.Model类。该类用于进行数据库中数据与Python对象之间的转换操作。接下来将Blog类反映到sqlite3数据库中。这个阶段请重点模仿,后面会为你补充相应的知识框架。在manage.py所在文件夹中运行如下命令:pythonmanage.pymakemigrationsblog该命令用于查看博客中模型文件的变化。由于我们上面创建了一个Blog类,修改了models.py文件,执行上面的命令时,会输出如下内容。>pythonmanage.pymakemigrationsblogMigrationsfor'blog':blog\migrations\0001_initial.py-CreatemodelBlog提示的信息也是CreatemodelBlog,提示创建Blog类。接下来将sqlite3中models.py中的内容创建出来,使用的命令是pythonmanage.pymigrateblog,运行结果如下:>pythonmanage.pymigrateblogOperationstoperform:Applyallmigrations:blogRunningmigrations:Applyingblog.0001_initial...OK2.3创建管理后台如下通过简单的步骤实现对blog表的管理,Django有自己的用户认证系统,可以通过命令pythonmanage.pymigrate来实现。>pythonmanage.pymigrateOperationstoperform:Applyallmigrations:admin,auth,blog,contenttypes,sessionsRunningmigrations:Applyingcontenttypes.0001_initial...OKApplyingauth.0001_initial...OKApplyingadmin.0001_initial...OK应用管理员.0002_logentry_remove_auto_add...OKApplyingadmin.0003_logentry_add_action_flag_choices...OKApplyingcontenttypes.0002_remove_content_type_name...OKApplyingauth.0002_alter_permission_name_max_length...OKApplyingauth.0003_alter_user_email_max_length...OKApplyingauth.0004_alter_user_username_opts...OKApplyingauth.0005_alter_user_last_login_null...确定应用auth.0006_require_contenttypes_0002...确定应用auth.0007_alter_validators_add_error_messages...确定应用auth.0008_alter_user_username_max_length...确定应用auth.0009_alter_user_last_name_max_length...确定应用auth.0010_alter_group_0_1oxy_1miss_length...确定ns...OKApplyingauth.0012_alter_user_first_name_max_length...OKApplyingsessions.0001_initial...OK此命令创建一个包含一些列的数据库表结构。出现表结构后,需要创建一个登录账号。使用的核心命令是pythonmanage.pycreatesuperuser>pythonmanage.pycreatesuperuserUsername(留空使用'administrator'):xiangpica邮箱:dream@163.com密码:密码(再次):密码与用户名太相似绕过密码验证并创建用户?[y/N]:ySuperuser创建成功。准备工作完成,修改admin.py文件,注意admin.py文件的位置和模块之间的调用关系。fromdjango.contribimportadminfromblog.modelsimportBlog#Registeryourmodelshere.@admin.register(Blog)classBlogAdmin(admin.ModelAdmin):pass正式运行前需要修改网页显示中英文内容,打开setting.py文件,修改如下内容。#LANGUAGE_CODE='en-us'LANGUAGE_CODE='zh-hans'准备工作完成,控制台运行以下命令pythonmanage.pyrunserver:>pythonmanage.pyrunserverWatchingforfilechangeswithStatReloaderPerformingsystemchecks...System检查发现没有问题(0沉默)。2021年3月24日-22:22:33Django版本3.1.7,使用设置'my_website.settings'在http://127.0.0.1:8000/启动开发服务器现在打开默认页面并显示内容如下:修改访问地址为:http://127.0.0.1:8000/admin,会出现登录窗口,使用上面注册的账号即可访问。输入一些文章相关信息保存后,返回列表页,出现一个小细节,橙色框里的数据是一个Blog对象,不是文章标题,继续修改代码。修改modes.py文件如下:fromdjango.dbimportmodels#Createyourmodelshere.classBlog(models.Model):title=models.CharField("Title",max_length=100)content=models.TextField("Content")creatr_time=models.DateField("PublishedTime")def__str__(self):returnself.title一个小博客完成,可以编辑和删除文章。
