zoukankan      html  css  js  c++  java
  • 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可以看到数据库中已经建立了数据表,并且可以手工增加数据进表中:

  • 相关阅读:
    java多线程
    java垃圾回收
    java研发常见问题总结 1
    js获取时间加多山天和时间戳转换成日期
    php时间选择器亲测可以自己修改
    html5时间选择器
    php生成员工编号,产品编号
    桌面远程链接
    SQL 左外连接查询 将右表中的多行变为左表的一列或多列
    PHPMailer发匿名邮件及Extension missing: openssl的解决
  • 原文地址:https://www.cnblogs.com/summyfly/p/7787008.html
Copyright © 2011-2022 走看看