• Django学习案例一(blog):三. 模型生成数据


    模型概述:

    简单的博客表构造:1. Category分类(分类名称)2. Tag标签(标签名称)3. Blog博客(标题、作者、正文、发布时间、分类、标签)4.评论(博客、称呼、邮箱、内容、发布时间)。

    表间关系:

    (1)一个博客只属于一个分类,而一个分类可以有多个博客,关系一对多。博客的分类设置为ForeignKey。同理,博客和评论也是一对多关系。

    (2)一个博客可以有多个标签,而一个标签可以有多个博客,关系多对多。博客的标签设置为ManyToManyField。

    1. 定义模型:

    D:chuangkemybloglogmodels.py

    
    
    from django.db import models
    """分类"""
    class Category(models.Model):
        name = models.CharField('名称', max_length=16)
        def __str__(self):
            return self.name

    """标签"""
    class Tag(models.Model):
        name = models.CharField('名称', max_length=16)
        def __str__(self):
            return self.name

    """博客"""
    class Blog(models.Model):
        title = models.CharField('标题', max_length=32)
        author = models.CharField('作者', max_length=16)
        content = models.TextField('正文')
        created = models.DateTimeField('发布时间', auto_now_add=True)
        category = models.ForeignKey(Category,verbose_name='分类',on_delete = models.CASCADE)
        tags = models.ManyToManyField(Tag, verbose_name='标签')
        def __str__(self):
            return self.title

    """评论"""
    class Comment(models.Model):
        blog = models.ForeignKey(Blog, verbose_name='博客',on_delete = models.CASCADE)
        name = models.CharField('称呼', max_length=16)
        email = models.EmailField('邮箱')
        content = models.CharField('内容', max_length=140)
        created = models.DateTimeField('发布时间', auto_now_add=True)
     

    2. 同步数据库数据

    在完成模型定义后,我需要将其真正同步到实际的数据库中去。操作需要分成两步:

    Python manage.py makemigrations blog

    #app名blog是可选的,如果不写则对项目中所有app进行数据迁移。

    Python manage.py migrate

    数据库就生成在项目根目录下,名为db.sqlite3,用sqlite expert personal可以看到数据库中已经建立了数据表,并且可以手工增加数据进表中:

  • 相关阅读:
    Go源码文件与命令
    K8s控制器
    odoo 在form视图sheet右上角增加按钮
    odoo 常用widget
    odoo tree视图中实现横向滚动条
    可能是智障的高二生活
    千题计划
    闲谈
    线性代数与simplex
    好题集锦
  • 原文地址:https://www.cnblogs.com/summyfly/p/7787008.html
Copyright © 2020-2023  润新知