| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> django基础与回顾 -> 正文阅读 |
|
[Python知识库]django基础与回顾 |
一:django命令 1.django的创建命令: ??????????django-admin startproject 项目名 2.Model 的作用是什么 ? ? ? ? ? model里存放的是模型类,与数据库连接,model的作用是操作数据库 3.View 的作用是什么: ? ? ? ? 一般在view里写的都是逻辑方法,所以view用来处理逻辑 4.model如何使用: ? ? ? ? (1),建立表结构 ---- 创建模型类. ? ? ? ? ? ? ? ? 继承models.Model模型类 ? ? ? ? (2),数据库生成表? -----? 迁移模型类 ? ? ? ? ? ? ? ? ? ? ? ? py manage.py makemigrations ? ? ? ? ? ? ? ? ? ? ? ? py manage.py migrate ? ? ? ? (3),表的数据操作? ---? 对数据的增删改查 5.迁移成功会生成迁移文件,记录所有的表操作方法. 二.数据检测查询. ? ? ? ? 1.基本查询: ? ? ? ? ? ? ? ? get(单一查询) ? ? ? ? ? ? ? ? all(查询多个结果) ? ? ? ? ? ? ? ? filter(条件).count() 查询结果的个数 ? ? ? ? ? ? ? ? exclude() 对查询结果取反? 例如 age=18,取与条件相反的的数据 ? ? ? ? 2.模糊查询 ? ? ? ? ? ? ? ? (1).contains? 是否包含关键词 ? ? ? ? ? ? ? ? ? ? ? ? 表名.objects,filter(字段名__contains='关键字') ? ? ? ? ? ? ? ? (2).startswith,endswith? 以指定值开头或结尾 ? ? ? ? 3.空查询: ? ? ? ? ? ? ? ? is_null? 是否为空值? True(为空)? False(不为空) ? ? ? ? 4.范围查询: ? ? ? ? ? ? ? ? in? 在[1.2.3.] 范围内 ? ? ? ? ? ? ? ? range? 在[10,20]? 范围内 ? ? ? ? 5.比较查询: ? ? ? ? ? ? ? ? gt,gte? ? 大于,大于等于 ? ? ? ? ? ? ? ? lt,lte? ? ? ?小于,小于等于 ? ? ? ? ? ? ? ? exclude? ? 不等于 ? ? ? ? 6.F查询与Q查询 ? ? ? ? ? ? (1)? ? F查询,比较两个字段的值进行比较 ? ? ? ? ? ? ? ? 表名.objects.filter(字段名__gte=F('字段名'))? 例如:商品数量大于价格 ? ? ? ? ? ? ?(2)? Q查询? 与逻辑运算符配合使用,可以查询多个条件? ?(&与,|或,~非) ????????????????????????表名.objects.filter(Q(条件) & Q(条件))??? ? ? ? ? 7.聚合函数: ? ? ? ? ? ? ? ? 使用aggregate()过滤器调用聚合函数,聚合函数包括: ????????????????????????? Avg(平均值]),Count(统计),Sum(求和),Max(最大值),Min(最小值) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表名.objects.aggregate(Count('字段名')? ? 统计个数 ? ? ? ?8.排序: ? ? ? ? ? ? ? ? order_by,对结果进行排序 ????????????????表名.objects.all().order_by('字段名')? 根据字段名进行排序默认正序 ????????????????表名.objects.all().order_by('-字段名')? 根据字段名进行排序(倒序) ? ? ? ? 9.关联查询: ? ? ? ? ? ? ? ? 一对多类型 ? ? ? ? ? ? ? ? ????????模型类一对多类型小写? ?_set ? ? ? ? ? ? ? ? ? ? ? ? b.主表名.objects.filter(id=1)? 子表名id为 1 ? ? ? ? ? ? ? ? ? ? ? ? b.子表名_set.all() 查询主表里关联的子表信息 ? ? ? ? ? ? ? ?多对一类型: ? ? ? ? ? ? ? ? ? ? ? ? c = 子表名.objects.filter(id=1) ? ? ? ? ? ? ? ? ? ? ? ? c.字段名? 查询字表关联的主表字段信息 ? ? ? ? ? ? ? ? ? ? ? ? 也可以使用related_name来指定字段变量名 三.View的使用: ? ? ? ? 1.获取View里的request的请求参数 ? ? ? ? ? ? ? ? (1).获取get ? ? ? ? ? ? ? ? ? ? ? ? request.GET.get() ? ? ? ? ? ? ? ? (2).获取form-data ? ? ? ? ? ? ? ? ? ? ? ??request.POST.get() ? ? ? ? ? ? ? ? (3).获取JSON ? ? ? ? ? ? ? ? ? ? ? ? data =?request.body ? ? ? ? ? ? ? ? ? ? ? ? json.loads(data) ? ? ? ? ? 2.返回请求的数据: ? ? ? ? ? ? ? ? 1.返回JSON ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1).JsonResponse ? ? ? ? ? ? ? ? ?2.返回字符串: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (1).HttpResponse ? ? ? ? ? 3.序列化: ? ? ? ? ? ? ? ? ? ?(1).for i in 查询结果集: ? ? ? ? ? ? ? ? ? ?(2).数据=i.字段名 ? ? ? ? 注: (1): 在原生django里不能使用data来获取数据,data属于DRF框架 ? ? ? ? ? ? ? ? (2): 接收JSON数据要用body接收? (是以二进制流的形式接收)? 所以要先转化为JSON的? ? ? ? ? ? ? ? ? ? ? ? ?形式才能获取信息. ???????????????? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 16:33:43- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |