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视图)

模板

简答(赌一手)




相关推荐
科技小花3 小时前
数据治理平台架构演进观察:AI原生设计如何重构企业数据管理范式
数据库·重构·架构·数据治理·ai-native·ai原生
一江寒逸3 小时前
零基础从入门到精通MySQL(中篇):进阶篇——吃透多表查询、事务核心与高级特性,搞定复杂业务SQL
数据库·sql·mysql
D4c-lovetrain3 小时前
linux个人心得22 (mysql)
数据库·mysql
阿里小阿希4 小时前
CentOS7 PostgreSQL 9.2 升级到 15 完整教程
数据库·postgresql
荒川之神4 小时前
Oracle 数据仓库雪花模型设计(完整实战方案)
数据库·数据仓库·oracle
做个文艺程序员4 小时前
MySQL安全加固十大硬核操作
数据库·mysql·安全
不吃香菜学java4 小时前
Redis简单应用
数据库·spring boot·tomcat·maven
一个天蝎座 白勺 程序猿4 小时前
Apache IoTDB(15):IoTDB查询写回(INTO子句)深度解析——从语法到实战的ETL全链路指南
数据库·apache·etl·iotdb
不知名的老吴4 小时前
Redis的延迟瓶颈:TCP栈开销无法避免
数据库·redis·缓存
YOU OU4 小时前
三大范式和E-R图
数据库