django
django
全栈开发
全栈开发工程师,互联网教育特约讲师
展开
-
restful专栏 01.drf基础概念 02.drf的使用
# 02.drf的使用[toc]{type: "ol", level: [2, 3, 4, 5]}### drf的使用 Django框架也可以实现前后端分离,但是比较繁琐 使用drf可以迅速的进行API文档开发### 项目结构比较 1.新增一个serializers.py文件 用于将QuerySets/model instances等复杂的数据结构,转化为native python 以便于以json格式返回[render]给前端 ...原创 2022-04-09 11:05:46 · 159 阅读 · 0 评论 -
django专栏 search 10.数据库查询优化
orm语句特点:惰性查询 不使用时不查询例如: res = models.Book.objects.all() 不查询 print(res) 查询only models.Book.objects.only('title') only 点击only()没有的字段,会走数据库 点击only()内的字段,不会走数据库 all 不会走数据库defer 与only相反 defer()内的字段,会走数.原创 2022-04-09 10:14:16 · 651 阅读 · 0 评论 -
django专栏 search 09.Q查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models from django.db.models import Q # Q包裹后默认还是and关系,可以换成 | ,表示或 ~ 表示取反 .原创 2022-04-09 10:12:35 · 518 阅读 · 0 评论 -
django专栏 search 08.F查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models from django.db.models import F, Value from django.db.models.functions i.原创 2022-04-09 10:11:49 · 67 阅读 · 0 评论 -
django专栏 search 07.分组查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django from django.db.models import Count, Min, Sum django.setup() from idea import models # 分组之后只能获取到分组的依据,组内其他字段无法.原创 2022-04-09 10:11:06 · 554 阅读 · 0 评论 -
django专栏 search 06.聚合查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models from django.db.models import Max, Min, Sum, Count, Avg # 与数据库相关的模块,基本都在.原创 2022-04-09 10:10:08 · 230 阅读 · 0 评论 -
django专栏 search 05.基于双下划线的跨表查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models # 1.查询李白的手机号 # 方式1: print(models.Author.objects.filter(name='李白')..原创 2022-04-09 10:09:06 · 394 阅读 · 0 评论 -
django专栏 search 04.基于对象的跨表查询
"""正反向的概念: 看外键字段在哪个表单 正向: 通过书籍查看出版社,就是正向 按字段查询 反向: 通过出版社查看书籍,就是反向 按表名查询[小写]多表查询: 子查询:基于对象的跨表查询 连表查询:基于双下划线的跨表查询"""import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MO.原创 2022-04-09 10:08:02 · 105 阅读 · 0 评论 -
django专栏 search 03.外键的增删改查
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models """一对多""" # 增加数据 # 方式1: models.Book.objects.create(title='平凡的世.原创 2022-04-09 10:06:40 · 237 阅读 · 0 评论 -
django专栏 search 02.双下划线查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models objs = models.User.objects # 年龄大于20岁的用户 print(objs.filter(age__gt=20.原创 2022-04-09 10:05:25 · 88 阅读 · 0 评论 -
django专栏 search 01.必会基础查询
import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models # 必会13条 objs = models.User.objects # 1.all() 查询所有数据 print(objs.a.原创 2022-04-09 10:04:22 · 100 阅读 · 0 评论 -
djagno专栏 01.web开发目录结构
01.web开发目录结构[toc]{type: “ol”, level: [2, 3, 4, 5]}web开发目录结构templates文件夹存放html文件urls.py路由与视图函数的对应关系 urls = [('/index',index)...]views.py视图函数 def index(env):...wsgiref模块1.收到请求的时候,解析http格式的数据 封装成字典2.进行响应时,将数据封装为符合http协议的数据,返回给浏览器静态网页数据是直接写死的原创 2022-03-31 14:57:39 · 274 阅读 · 0 评论 -
django专栏 02.Python主流框架
02.Python主流框架[toc]{type: “ol”, level: [2, 3, 4, 5]}Django大而全,自带功能很多对于小网站略显笨重Flask小而精,自带功能很少,第三方模块很多依赖于第三方的开发者,容易出现兼容性问题Tornado异步非阻塞,支持高并发,用于开发游戏服务器框架3部分socketurls模板语法Django注意事项1.计算机的名称不能有中文2.1个PyCharm窗口只开1个项目3.项目里的所有文件名,最好不要用中文4.解释器用3原创 2022-03-31 15:13:37 · 3777 阅读 · 0 评论 -
django专栏 03.创建django项目
03.创建django项目[toc]{type: “ol”, level: [2, 3, 4, 5]}创建项目django-admin startproject my_project启动项目切换到项目目录下python3 manage.py runserverhttp://127.0.0.1:8000/创建应用Django是专门用于开发app的web框架 [app指的是一种功能]python3 manage.py startapp app_name快捷操作Tools -->原创 2022-03-31 15:15:06 · 87 阅读 · 0 评论 -
django专栏 04.django目录结构
04.django目录结构[toc]{type: “ol”, level: [2, 3, 4, 5]}文件介绍mydjango文件夹 settings.py 配置文件 urls.py 路由与视图函数对应关系 db.sqlite3 自带小型数据库 asgi.py 不常用 wsgi.py 不常用app文件夹 admin 后台管理 apps.py 注册使用 migration文件夹 数据库迁移记录 models.py 数据库相关的 模原创 2022-03-31 15:16:43 · 221 阅读 · 0 评论 -
django专栏 05.请求生命周期
05.请求生命周期[toc]{type: “ol”, level: [2, 3, 4, 5]}流程浏览器 --> Web服务网关接口 --> Django框架Web服务网关接口:收到请求时解析封装传递响应时打包处理Django自带的wsgiref模块,支持的并发量很小,在1000以内上线后会换成uwsgi,并增加反向代理WSGI是协议,wsgiref、uwsgi是实现协议的模块Django框架中间件路由层:urls.py视图层:views.py模版层:t原创 2022-03-31 15:18:05 · 464 阅读 · 0 评论 -
django专栏 06.路由层
06.路由层[toc]{type: “ol”, level: [2, 3, 4, 5]}路径匹配re_path/url 路径前要加^,否则**test/也会被匹配成功 路径后要加`$`,否则test/**也会被匹配成功url/path方法第一个参数是正则表达式,结尾必须加 /在浏览器输入时,如果结尾没有加 / ,Django会自动添加 / 再尝试一次路由分组正则分组:用()将正则表达式分开无名分组:url(r'^test/(\d+)/', views.test)将原创 2022-03-31 15:19:12 · 74 阅读 · 0 评论 -
jango专栏 07.路由分发
07.路由分发[toc]{type: “ol”, level: [2, 3, 4, 5]}路由分发Django的每个应用都可以有自己的templates文件夹、django文件夹、static文件夹等非常有利于分组开发路由分发还可以防止总路由urls.py的代码冗余组长任务将手下书写的app全部拷贝到一个新的Django项目中在配置文件中注册全部app利用路由分发的特点整合app总路由分发处理识别当前url属于哪个应用将其直接分发给对应的应用去处理多个应用出现相同的别名时,原创 2022-03-31 15:19:56 · 164 阅读 · 0 评论 -
django专栏 08.开启事物
08.开启事物[toc]{type: “ol”, level: [2, 3, 4, 5]}django中开启事物import osif __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'idjango.settings') import django django.setup() from idea import models from django.db im原创 2022-03-31 15:20:41 · 70 阅读 · 0 评论 -
django专栏 09.ORM常用字段
09.ORM常用字段[toc]{type: “ol”, level: [2, 3, 4, 5]}AutoField主键字段:primary_key = TrueCharField varcharverbose_name 字段的注释max_length 长度IntegerField intDecimalField floatmax_digits = 8decimal_places = 2EmailField varcharDateField dateDateTimeF原创 2022-03-31 15:21:33 · 78 阅读 · 0 评论 -
djagno专栏 10.表关系补充
10.表关系补充[toc]{type: “ol”, level: [2, 3, 4, 5]}表关系补充from django.db import models# Create your models here.class User(models.Model): username = models.CharField(max_length=255) age = models.IntegerField() # 性别 可以用字符串作为标识 对应好即可 gender_原创 2022-03-31 15:22:10 · 72 阅读 · 0 评论 -
django专栏 11.ajax简介
11.ajax简介[toc]{type: “ol”, level: [2, 3, 4, 5]}MTV:Django号称MTV模型 models templates viewsMVC:本质也是MVC模型 models views controller异步提交:提交数据不等待局部刷新:例如:每输入一个字母校验一次向后端发送请求的方式: 1.浏览器地址栏输入url GET 2.a标签 GET 3.form表单 GET/POST 4.Ajax原创 2022-03-31 15:23:59 · 256 阅读 · 0 评论 -
django专栏 12.数据传输编码格式
12.数据传输编码格式[toc]{type: “ol”, level: [2, 3, 4, 5]}前后端数据传输的编码格式: urlencoded 默认格式 form-data jsonurlencoded格式的数据: 自动解析封装到request.POST中 例如:username=admin&password=123456form-data格式的数据: urlencoded部分:自动解析封装到request.POST中 file部原创 2022-03-31 15:24:36 · 151 阅读 · 0 评论 -
django专栏 13.form表单校验
13.form表单校验[toc]{type: “ol”, level: [2, 3, 4, 5]}form表单校验Python Console导入模块: from app01 import models from app01 import views创建一个测试对象: form_obj = views.MyForm({'username':'json', 'password': '12', 'email': 1248}) 只对比类中存在的属性,不存在的不进行校验,因原创 2022-03-31 15:25:26 · 505 阅读 · 0 评论 -
django专栏 14.form表单属性
14.form表单属性[toc]{type: “ol”, level: [2, 3, 4, 5]}form组件作用渲染html代码、后端校验数据、展示提示信息前端校验可有可无,后端必须校验,防爬虫、防黑客、防修改商品价格等form组件 渲染用户输入的标签 不渲染按钮 btn钩子函数(HOOK)在特定的节点自动触发 局部钩子:为单个字段增加自定义校验规则 全局钩子:为多个字段增加自定义校验规则常见参数label 字段名error_messages原创 2022-03-31 15:26:27 · 246 阅读 · 0 评论 -
django专栏 15.cookie与session
15.cookie与session[toc]{type: “ol”, level: [2, 3, 4, 5]}cookie保存在客户端/浏览器上的信息常用表现形式:k:v键值对大部分存储用户状态的操作,都需要使用cookiesession保存在服务器上的信息常用表现形式:k:v键值对session上基于cookie工作的token服务端不带存储数据,而是在登陆成功后,将信息加密处理将加密后的结果,拼接在信息后面,整体返回给浏览器保存下次访问时,根据加密结果进行校验jwt认证原创 2022-03-31 15:27:14 · 86 阅读 · 0 评论 -
djagno专栏 16.模块补充
16.模块补充[toc]{type: “ol”, level: [2, 3, 4, 5]}模块补充import importlib# 通过模块导入namefrom others.myfile import testprint(test.name)# 通过str导入模块,最小只能到文件名,不能到变量名my_file = importlib.import_module('myfile')# <module 'myfile' (namespace)> 名称空间my_file_原创 2022-03-31 15:27:55 · 65 阅读 · 0 评论 -
djagno专栏 17.csrf校验
17.csrf校验[toc]{type: “ol”, level: [2, 3, 4, 5]}csrf跨站请求伪造钓鱼网站: 搭建一个于正规网站相同的网站,例如,中国银行 转账的操作确实交给了中国银行的系统,用户存款减少,但是收款账户被替换内部本质: 给用户提供一个没有内部属性的input框 在内部隐藏一个已经写好name和value属性的input框...原创 2022-03-31 15:28:30 · 114 阅读 · 0 评论 -
django专栏 18.Meta
18.Meta[toc]{type: “ol”, level: [2, 3, 4, 5]}概念Meta是一个内部类,它用于定义一些Django模型类的行为特性abstract定义当前的模型是不是一个抽象类。抽象类不会对应数据库表。一般我们用它来归纳一些公共属性字段,继承它的子类可以继承这些字段abstract=Trueapp_label模型不在默认的应用程序包下的models.py文件中,需要指定该模型是哪个应用程序的。app_label = 'myapp'db_tableDj原创 2022-03-31 15:29:19 · 68 阅读 · 0 评论