Python学习笔记:7.1.3 Django快速建站 - 模型和超管

前言:本文是学习网易微专业的《python全栈工程师 - Django快速建站》课程的笔记,欢迎学习交流。同时感谢老师们的精彩传授!

一、课程目标

  • 了解Django中模型的含义和作用
  • 掌握迁移数据库的操作
  • 掌握超级管理员的创建方法
  • 掌握管理界面的配置方法

二、详情解读

2.1.模型
2.1.1.网页内容来源
  • 静态:直接写到HTML文件中
  • 动态:来自数据库。使用SQL语句读取数据库,Django通过ORMObject-Relational Mapping,对象关系映射)来实现对数据库的读写。
2.1.2.ORM
  • ORM:在关系型数据库和业务实体对象之间创建映射关系。操作业务对象时,不需要使用SQL语句,只需要操作对象的属性和方法。
  • 优点:可移植性强,安全性好,查询语法简单。
  • ORM实现方法:
    – 编写数据模型类
    – 位置:models.py(也可以是其他文件)
    – 继承:django.db.models.Model
    – 对应的数据库表:appname_modelname,(都是小写字母)
    – 创建数据库表:迁移操作,命令如下 :
python manage.py makemigrations
python manage.py migrate
实操:

myproject/blog/models.py文件中写入以下内容

from django.db import models
from django.utils import timezone
from django.contrib.auth.models import User

class BlogArticles(models.Model):
   title = models.CharField(max_length=300)
   author = models.ForeignKey(User, on_delete=models.CASCADE,related_name='blog_posts')
   body = models.TextField()
   publish = models.DateTimeField(default=timezone.now)

   class Meta:
       ordering = ('-publish', )

   def __str__(self):
       return self.title
示例解析:

Python学习笔记:7.1.3 Django快速建站 - 模型和超管_第1张图片

2.1.3.字段
title = models.CharField(max_length=300)
  • 模型中每一个字段都应该是某个Field类的实例,Django利用这些字段类来实现以下功能:
    – 字段类型用以指定数据库数据库类型(如:INTEGERVARCHARTEXT)。
    – 在渲染表单字段时默认使用的HTML 视图(如: