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

数据库就变更在品种根目录下,名为db.sqlite3,用sqlite expert
personal可以看来数据库中曾经建立了数据表,并且可以手工扩充多少进表中:

#app名blog是可选的,假设不写则对品种中保有app举办数据迁移。

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

  1. 一齐数据库数据

表间关系:1.一个博客只属于一个分类,而一个分拣可以有四个博客,关系一对多。博客的分类设置为ForeignKey。同理,博客和评价也是一对多关系。2.一个博客能够有六个标签,而一个标签可以有多少个博客,关系多对多。博客的价签设置为ManyToManyField(Field)。

 ORM对象关系映射(Object relation
mapping)实现了对象和数据库之间的照射,隐藏了多少访问的底细,不需要编制SQL语句,为支付提供了有利。

# -*-coding:utf-8 -*-
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='分类')
    tags = models.ManyToManyField(Tag, verbose_name='标签')
    def __str__(self):
        return self.title
class Comment(models.Model):
    """评论"""
    blog = models.ForeignKey(Blog, verbose_name='博客')
    name = models.CharField('称呼', max_length=16)
    email = models.EmailField('邮箱')
    content = models.CharField('内容', max_length=140)
    created = models.DateTimeField('发布时间', auto_now_add=True)

Django中以创办类的花样来成立数据表。

  1. 什么是模型models
  1. 创造表的讲话(创造类class)

 

sqlite 1

在编制代码的经过中,所有对数据库的操作,都是对类和类的目标举办操作。

模型只是利用 Django 提供的 ORM
完成对实际表结构的映射,由此在成就模型定义后,我需要将其真正同步到实在的数据库中去。操作需要分成两步:

Python manage.py makemigrations blog
Python manage.py migrate

blog/models内容改动:

网站地图xml地图