Django期末重点

news2025/1/11 14:57:28

思维导图

一、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)

五、视图请添加图片描述

六、模板

请添加图片描述

程序填空内容(猜的)

实验二内容

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

模板

请添加图片描述

简答(赌一手)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1835215.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Eigne库安装及使用教程

文章目录 1.Eigne库介绍2.Eigne库安装3.Eigne库使用4.some examples5.参考文献 1.Eigne库介绍 Eigen是可以用来进行线性代数、矩阵、向量操作等运算的C库,它里面包含了很多算法。它的License是MPL2。它支持多平台。 Eigen采用源码的方式提供给用户使用,在…

赛氪网荣膺“创新型中小企业”称号,科技创新再显卓越实力

近日,北京市经济和信息化局揭晓了2024年度3月份北京市创新型中小企业的光荣名单,其中北京环球赛乐科技有限公司(简称赛氪网)脱颖而出,再度展现其在创新领域的卓越实力! 作为早已跻身“高企之光”行列的佼佼…

【x264】滤波模块的简单分析

【x264】滤波模块的简单分析 1. 滤波模块概述1.1 自适应边界1.2 自适应样点级滤波器1.3 滤波过程 2. 函数入口(fdec_filter_row)2.1 去块滤波(x264_frame_deblock_row)2.1.1 强滤波函数(deblock_edge_intra&#xff09…

Ubuntu20.04-ROS:Noetic安装

根据Ubuntu系统来选择对应的ros版本,在Ubuntu20.04上安装ROS-Noetic为例说明下如何安装ros 一 设置ROS源 / 终端输入 sudo sh -c echo "deb http://packages.ros.org/ros/ubuntu $(lsb_release -sc) main" > /etc/apt/sources.list.d/ros-latest.lis…

语言大模型:开启自然语言处理的新篇章

随着人工智能技术的飞速发展,自然语言处理(NLP)领域取得了显著的成果。其中,语言大模型(Language Models)作为近年来崛起的一种新型神经网络模型,已经在文本生成、机器翻译、情感分析等多个NLP任…

计算机专业毕设-校园二手交易平台

1 项目介绍 基于SpringBoot的校园二手交易平台:前端Freemarker,后端 SpringBoot、Jpa,系统用户分为两类,管理员、学生,具体功能如下: 管理员: 基本功能:登录、修改个人信息、修改…

Web应用安全测试-综合利用(三)

Web应用安全测试-综合利用(三) XML注入 漏洞描述 可扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进…

内行人说真话,家用空气净化器对灰尘、毛絮的作用到底如何?

在日常生活中,打扫房间常常令人头疼,尤其是地面和家具上那些似乎永远清理不完的浮灰和毛絮。有时候,即使我们用吸尘器、扫地机器人等不断清扫,灰尘和毛絮仍旧存在。特别对于养宠物的家庭来说,清洁工作更是一项挑战&…

gitlab 身份验证手机号验证没86

处理方案 在浏览器中摁 【F12】打开控制台,选择网络模块,找到手机号列表的请求,请求是 https://gitlab.com/-/countries,右击数据区域点击【替换内容】如下: ![在这里插入图片描述](https://img-blog.csdnimg.cn/di…

三分钟了解链动3+1模式

在电商领域的营销策略中,链动31模式以其独特的魅力和优势,吸引了众多商家的目光。下面,我们将对这一模式进行深度剖析,并探讨其相较于链动21模式的优势所在。 一、身份设置与奖励机制 链动31模式在身份设置上分为三种&#xff1…

【React】Table表头纵向展示

默认表格展示: 展示目标: 环境 antd: ^5.14.1react: ^18 拟定数据 - columns const columns [{title: "品牌",dataIndex: "brand",key: "brand",width: 100,},{title: "Star",dataIndex: "star&quo…

VS C++常用错误与解决方法

无法找到 v143 的生成工具(平台工具集 “v143”) 若要使用 v143 生成工具进行生成,请安装 v143 生成工具。或者,可以升级到当前 Visual Studio 工具,方式是通过选择“项目”菜单或右键单击该解决方案,然后选择“重定解决方案目标…

HarmonyOS 开发知识:一个基于 emitter 封装了一个便捷的 EventBus 事件通知

引言 鸿蒙提供提供了在同一进程不同线程间,或同一进程同一线程内,发送和处理事件的能力,包括持续订阅事件、单次订阅事件、取消订阅事件,以及发送事件到事件队列的能力。 ohos.events.emitter Emitter 封装前使用:e…

红黑树插入数据的底层详解

红黑树定义 1. 每个结点不是红色就是黑色 2. 根节点是黑色的 3. 如果一个节点是红色的,则它的两个孩子结点是黑色的 4. 对于每个结点,从该结点到其所有后代叶结点的简单路径上,均 包含相同数目的黑色节点 5. 每个叶子结点都是黑色的(此…

c语言---循环 、判断基础知识详解

if语句 else离最近的if语句结合。 if语句题目 //1. 判断一个数是否为奇数 //2. 输出1 - 100之间的奇数 #include <stdio.h> int main() {int n 0;scanf("%d", &n);if (n % 2){printf("奇数\n");}else{printf("不是奇数\n"…

LeetCode 2813.子序列最大优雅度

给你一个长度为 n 的二维整数数组 items 和一个整数 k 。 items[i] [profiti, categoryi]&#xff0c;其中 profiti 和 categoryi 分别表示第 i 个项目的利润和类别。 现定义 items 的 子序列 的 优雅度 可以用 total_profit distinct_categories^2 计算&#xff0c;其中 t…

VScode如何调试

调试 1.打断点 1.点击调试按钮 3.点击下拉选择环境node&#xff0c;点击绿三角选择输入调试的命令&#xff08;具体命令查看package.json中scripts中的哪一个命令和运行的文件&#xff09;&#xff0c;点击右边的设置&#xff08;可以直接跳下面第八步&#xff01;&#xff…

【2024最新精简版】SpringCloud面试篇

文章目录 SpringBoot和SpringCloud什么区别 ?你们项目为什么要使用微服务Spring Cloud 5大组件有哪些&#xff1f;&#x1f44d;什么是微服务?微服务的优缺点是什么?你们项目中微服务之间是如何通讯的? &#x1f44d;服务注册和发现是什么意思&#xff1f;Spring Cloud 如何…

LeetCode题练习与总结:被围绕的区域--130

一、题目描述 给你一个 m x n 的矩阵 board &#xff0c;由若干字符 X 和 O 组成&#xff0c;捕获 所有 被围绕的区域&#xff1a; 连接&#xff1a;一个单元格与水平或垂直方向上相邻的单元格连接。区域&#xff1a;连接所有 0 的单元格来形成一个区域。围绕&#xff1a;如果…

使用pytest-xdist实现分布式APP自动化测试

不知道大家有没有遇到这样一种情况&#xff0c;实际工作中&#xff0c;app自动化测试的用例可能是成百上千条的&#xff0c;如果放在一台机器上跑&#xff0c;消耗的时间非常久&#xff0c;那能不能使用分布式的来跑测试用例呢&#xff1f;比如有1000条测试用例&#xff0c;给A…