将数据保存到数据库



ORM与DB-django使用ORM方式建立操作数据表

###1、model模型第一步:设计模型

❖ 完成博客,我们需要存储三种数据。文章分类、文章、文章标签。 

❖ 1、分类表结构设计: 

❖ 表名:Category、分类名:name (科技,教学,游戏,动漫) 

❖ 2、标签表设计:

❖ 表名:Tags、标签名:name (俄乌局势,360报告) 

❖ 3、文章表结构设计: 

❖ 表名:Article、标题:title、摘要:intro、分类:category、标签:tags、内容:body、创建时间:created_time、作者:author 

❖ 其中:

❖ 分类和文章是一对多的关系,标签和文章是多对多的关系,作者和文章是一对多的关系。

###2、模型第二步

###1.创建模型( blog/models.py )

❖ fromdjango.dbimportmodels

❖ classCategory(models.Model):

❖  name = models.CharField(verbose_name='分类', max_length=100)

❖ classTags(models.Model):

❖  name = models.CharField('标签', max_length=100)

❖ classArticle(models.Model):

❖  title=models.CharField('文章标题',max_length=70)

❖  intro=models.TextField('文章内容',max_length=200,blank=True)

❖  created_time=models.DateTimeField(‘发布时间',auto_now_add=True)

###2.创建模型--关联

❖  category =

models.ForeignKey(Category,on_delete=models.CASCADE,verbose_name='分类',default='1')

❖  tags = models.ManyToManyField(Tags,blank=True)

❖  user = models.ForeignKey(User,on_delete=models.CASCADE,verbose_name='作者')

元数据改中文匹配

❖ class Category(models.Model):

❖    name = models.CharField('分类',max_length=100) 

❖    #下面为新增代码, 

❖    class Meta: 

❖        verbose_name = '分类' 

❖        verbose_name_plural = verbose_name 

❖    def __str__(self): 

❖        return self.name

❖ 我们给每个类都增加了一个内部类Meta和__str__方法属性,刷新。

增加字段

❖keywords=models.CharField('文章关词',max_length = 120,blank = True,null = True) 

❖views=models.PositiveIntegerField('阅读量',default = 0) 

❖top=models.IntegerField(choices=[(0,'否'),(1,'是'),], default = 0,verbose_name = '是否推荐') 

❖modified_time=models.DateTimeField('修改时间',auto_now = True)

###模型第三步:迁移数据

❖ 数据模型设计好之后,我们就需要迁移数据到数据库。 

❖ 创建模型文件:只是创建了一个对象的数据文件,为改动创建迁移记录;python manage.py makemigrations 

❖ 迁移数据:把表结构在数据库中建立,将操作同步到数据库 

❖ python manage.py migrate

###第四步:可以使用Django管理后台admin查看建立的应用

❖ 1、创建管理员帐号密码

❖ 创建一个管理员帐号 

❖ python manage.py createsuperuser 

❖ ……

❖ 2、启动开发服务器

❖ 输入如下命令:

❖ pythonmanage.pyrunserver

在浏览器中访问http://127.0.0.1:8000/admin/

3、在admin下注册blog应用

打开blog/admin.py文件,加入如下内容:

❖fromdjango.contribimportadmin

❖from.modelsimportArticle,Tags,Category

❖admin.site.register(Tags)

❖admin.site.register(Article)

❖admin.site.register(Category)

刷新页面,我们就能看到blog这个应用了。

增加管理平台

class ArticleAdmin(admin.ModelAdmin):

# 界面显示的列 list_display=('id', 'category', 'title', 'user','views','created_time') 

list_per_page设置每页显示多少条记录,默认是100条 list_per_page = 50 

#ordering设置默认排序字段,负号表示降序排序 ordering = ('-created_time',) 

#fk_fields 设置显示外键字段 fk_fields = ['category']

# 设置id字段可以点击进入编辑界面 list_display_links = ['id']

# 指定标题title做为搜索字段 search_fields = ['title'] list_filter = ['user'] 

# 右侧栏过滤器,按作者进行筛选 date_hierarchy = 'created_time' 

# 详细时间分层筛 admin.site.site_header = '内容管理后台' 

admin.site.site_title = '测试知识内容平台'

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容