Django期末重点

思维导图

一、Djanog框架基础

MVT设计模式(model模型【操作数据库】、template模板【页面展示】、view视图【处理请求和调用模型模板】)

二、Django项目框架搭建

  1. 创建项目骨架 django-admin startproject 项目名
  2. 启动服务
    (1)python manage.py runserver
    (2)默认8080端口
  3. 配置setting.py文件
    (1)INSTALLED_APP(当前项目需要加载的app路径包括列表)
    (2)TEMPLATES(项目的模板配置)
    (3)DATABASES(标识项目的数据库配置)
  4. 管理后台与超级用户
    (1)创建超级用户 python manage.py createsuperuser
    (2)默认路径 http://127.0.0.1:8000/admin/
  5. 创建应用
    python manage.py startapp 应用名

三、 模型

  1. ORM基本概念
    (1)ORM把数据表与python类对应,表字段与属性对应、类实例与数据记录对应,并将对类实例的操作映射到数据库中。
    (2)开发者不再需要写SQL代码,可以更加专注的完成业逻辑。
  2. Models定义
    (1)直接继承或者间接继承models.Model类
    (2)Model中定义字段(models.Filed的子类)
    (3)时间类型字段中,Field参数 auto_now_add用于将首次创建的对象时间设置为当前时间 auto_now 用于首次保存对象时间设置为当前时间
    (4)_ _str _ _方法用于将函数的返回值作为对象的显示值
  3. 应用完成数据库迁移
    (1)生成迁移文件python manage.py makemigrations
    (2) 执行迁移命令 python manage.py migrate
  4. 模型字段类型
    (1)常见字段类型 CharFiled(字符串) IntegerFiled(整数) BooleanFiled(布尔) TextFiled(长文本)DatatimeFlie(日期)
    (2)自定义字段类型
  5. 三种关系字段类型
    (1)多对一ForeignKey
    (2)多对多(ManyToMany)
    (3)一对一(OneToOneField)
  6. 创建model实例对象的方法
    (1)使用save方法实现(2)使用create方法实现
  7. 返回单实例的查询方法: get查询
  8. 返回多条数据记录,使用QuerySet对象的查询
    (1)all():返回QuerySet中包含的所有对象
    (2)filter():返回一个新的QuerySet 它包含满足查找参数的对象
  9. 使用update方法更新单个或多个Model实例
    (1)更新单个模型
    (2)更新多个模型
  10. 使用delete删除单个或多个Model实例
  11. 应用:话题和评论的Model定义及新增、修改、删除(实验二重点)模型定义:参考post包下的models.py文件、使用模型默认管理器objects的对模型对象进行批量查询和批量修改。

四、管理后台

使用register方法

admin.site.register(Topic TopicAdmin)

装饰器修饰

@admin.register(Topic)

class TopicAdmin(admin.ModelAdmin)

五、视图

六、模板

程序填空内容(猜的)

实验二内容

python 复制代码
from django.contrib.auth.models import User
from django.db import models


# Create your models here.

class BaseModel(models.Model):
    created_time = models.DateTimeField(auto_now_add=True, help_text='创建时间')
    last_modified = models.DateTimeField(auto_now=True, help_text='修改时间')

    class Meta:
        abstract = True


class Topic(BaseModel):
    title = models.CharField(max_length=255, unique=True, help_text='话题标题')
    content = models.TextField(help_text='话题内容')
    is_online = models.BooleanField(default=True, help_text='话题是否在线')


class Comment(BaseModel):
    content = models.CharField(max_length=255, help_text='话题评论')
    up = models.IntegerField(default=0, help_text='支持')
    down = models.IntegerField(default=0, help_text='反对')

    topic = models.ForeignKey(to=Topic, on_delete=models.SET_NULL, help_text='关联话题表', null=True)


class Role(models.Model):
    name = models.CharField("角色名称", max_length=50, unique=True)
    # 多对多
    users = models.ManyToManyField(to=User)

实验5.1(ListView视图)

模板

简答(赌一手)




相关推荐
深蓝海拓8 分钟前
Pyside6(PyQT5)中的QTableView与QSqlQueryModel、QSqlTableModel的联合使用
数据库·python·qt·pyqt
C嘎嘎嵌入式开发2 小时前
什么是僵尸进程
服务器·数据库·c++
Yeats_Liao3 小时前
Navicat 导出表结构后运行查询失败ERROR 1064 (42000): You have an error in your SQL syntax;
数据库·sql
明月看潮生4 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 15课题、备份与还原
数据库·青少年编程·postgresql·编程与数学
明月看潮生5 小时前
青少年编程与数学 02-007 PostgreSQL数据库应用 14课题、触发器的编写
数据库·青少年编程·postgresql·编程与数学
加酶洗衣粉9 小时前
MongoDB部署模式
数据库·mongodb
Suyuoa9 小时前
mongoDB常见指令
数据库·mongodb
添砖,加瓦9 小时前
MongoDB详细讲解
数据库·mongodb
Zda天天爱打卡9 小时前
【趣学SQL】第二章:高级查询技巧 2.2 子查询的高级用法——SQL世界的“俄罗斯套娃“艺术
数据库·sql
我的运维人生9 小时前
MongoDB深度解析与实践案例
数据库·mongodb·运维开发·技术共享