情感测试
情感测试

您现在的位置: 情感测试简介_情感测试玩法 > 情感测试简介 > Django搭建个人博客三

Django搭建个人博客三

发布时间:2021-8-22 14:29:58   点击数: 2 次
编写模型和视图Model/View编写Model.py

对博客网站来说,最重要的数据就是文章。所以首先来建立一个存放文章的数据模型。

打开article/models.py文件,输入如下代码

#article/models.pyfromdjango.dbimportmodels#导入内建的User模型。fromdjango.contrib.auth.modelsimportUser#timezone用于处理时间相关事务。fromdjango.utilsimporttimezone#博客文章数据模型classAticlePost(models.Model):#文章作者参数on_delete用于指定数据删除的方式author=models.ForeignKey(User,on_delete=models.CASCADE)#文章标题。models.CharField为字符串字段,用于保存较短的字符串,比如标题title=models.CharField(max_length=)#文章正文。保存大量文本使用TextFieldbody=models.TextField()#文章创建时间。参数default=timezone.now指定其在创建数据时将默认写入当前的时间created=models.DateTimeField(default=timezone.now)#文章更新时间。参数auto_now=True指定每次数据更新时自动写入当前时间updata=models.DateTimeField(auto_now=True)#内部类classMeta用于给model定义元数据classMeta:#ordering指定模型返回的数据的排列顺序#-created表明数据应该以倒序排列ordering=(-created,)verbose_name="文章"#单数形式显示的字段verbose_name_plural=verbose_name#函数__str__定义当调用对象的str()方法时的返回值内容def__str__(self):#returnself.title将文章标题返回returnself.title

内部类

内部类classMeta提供模型的元数据。元数据是“任何不是字段的东西”,例如排序选项ordering、数据库表名db_table、单数和复数名称verbose_name和verbose_name_plural。这些信息不是某篇文章私有的数据,而是整张表的共同行为。

要不要写内部类是完全可选的,当然有了它可以帮助理解并规范类的行为。

在ArticlePost中我们使用的元数据ordering=(-created,),表明了每当我需要取出文章列表,作为博客首页时,按照-created(即文章创建时间,负号标识倒序)来排列,保证了最新文章永远在最顶部位置。

数据迁移(Migrations)

编写好了Model后,接下来就需要进行数据迁移。迁移是Django对模型所做的更改传递到数据库中的方式。

注意,每当对数据库进行了更改(添加、修改、删除等)操作,都需要进行数据迁移。

Django的迁移代码是由模型文件自动生成的,它本质上只是个历史记录,Django可以用它来进行数据库的滚动更新,通过这种方式使其能够和当前的模型匹配。

在Terminal,输入pythonmanage.pymakemigrations,对模型的更改创建新的迁移表:

通过运行makemigrations命令,Django会检测你对模型文件的修改,并且把修改的部分储存为一次迁移。

然后输入pythonmanage.pymigrate,应用迁移到数据库中:

HelloWorld!

#article/views.py

fromdjango.shortcutsimportrender#导入HttpResponse模块fromdjango.

转载请注明:http://www.zmax-alibaba.com/qgjj/138028.html

网站简介 | 发布优势 | 服务条款 | 隐私保护 | 广告合作 | 合作伙伴 | 版权申明 | 网站地图

当前时间: