自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(82)
  • 收藏
  • 关注

原创 视图组件详解

2021-09-05 20:26:18 248 1

原创 FRI.认证类

FRI.认证类1 序列化类钩子函数执行位置的源码 -反序列化的校验:字段自己的校验,局部钩子校验,全局钩子校验 2 drf的请求 -Request类的对象 -data:put,post提交的数据都在里面 -query_params:get请求提交的数据 -用起来跟django的request一样用 -指定可以解析的编码格式 -默认3种 -局部配置和全局配置 -优先级:视图类 --&g

2021-09-05 20:21:16 176

原创 THU.源码解析

THU.源码解析序列化类源码分析# 局部和全局钩子在哪执行ser.is_valid '在进行校验之后,会保存校验信息,,因此即使进行多次校验判断也只执行一次' --> BaseSerializer 的 is_valid --> self._validated_data = self.run_validation(self.initial_data) --> 是哪个类的 run_validation?不是 Field 类的,而是 Serializer 类的 -Seri

2021-09-05 20:20:41 193

原创 WED.序列化类之 Serializer

WED.序列化类之 Serializer类中方法和函数的区别方法绑定给对象的方法内有任何装饰器对象来调用,会自动传值,把对象当做第一个参数传进来绑定给类的方法类来调用,会自动传值,把类当做第一个参数传进来函数通过 @staticmethod 修饰的函数被称为普通函数,也被称为静态方法,有几个值,调用时就传入几个值。注意1、对象可以调用类的方法,且仍然会把类作为第一个参数自动传入2、类也可以调用对象的方法,'但只作为普通函数',不会将对象或类作为第一个参数自动传入

2021-09-05 20:19:49 111

原创 TUE.序列化组件的简单应用

TUE.序列化组件的简单应用CBV源码分析我们在路由中写了 IndexView.as_view() --> 实际上放了一个函数内存地址,源码是 --> 实际上是 view 的内存地址 @classonlymethod def view(request, *args, **kwargs): return self.dispatch(request, *args, **kwargs) return view 当请求来了,跟路由匹配成功,就会执行 vi

2021-09-05 20:18:58 84

原创 MON.DRF 入门规范

Web 开发模式前后端不分离 – 混合开发模式前后端分离 – 后端开发模式1、提高开发效率2、降低软件设计的耦合度 - 通过后端提供的接口,给不同类型的客户端传递数据 3、提高处理复杂业务的能力API接口通过网络,规定了前后台信息交互规则的url链接,也就是前后台信息交互的媒介1、长得像返回数据的url链接2、请求方式:get、post、put、patch、delete3、请求参数:json或xml格式的key-value类型数据4、响应结果:json

2021-09-05 20:18:19 2824

转载 多对多表关系的三种创建方式

多对多关系表的三种创建方式全自动在我们之前创建多对多表的时候,一直用的都是全自动的方式来创建第三张关系表的class Book(models.Model): title = models.CharField(max_length=32) price = models.DecimalField(max_digits=8, decimal_places=2) # 创建多对多关系字段 authors = models.ManyToManyField(to='Author')

2021-09-05 16:02:13 1663

原创 “detail“: “Unsupported media type \“text/plain\“ in request.“

在使用 Postman 的过程中,使用 POST 请求传输数据时,Postman 反馈如下错误 "detail": "Unsupported media type \"text/plain\" in request."这是由于在传输数据过程中格式选择错误的原因只要将右下角的 Text 格式转换为 Json 格式即可...

2021-09-04 23:52:04 2328

原创 Django 2.x 版本路由视图无法匹配正则

在 Django 2.x 以后的版本中,将 url 改为了 path,且 path 不匹配正则,因此需要通过导入 from django.urls import re_path 使用 re_path 来达到正则匹配的目的

2021-08-30 21:53:22 110

原创 关于 Ajax 与 form 表单提交冲突的问题

Ajax 与 form 表单在提交数据的过程中,若 form 表单指定了数据提交方式或使用 sumbit 按钮提交数据,则会与 Ajax 发生冲突,导致后端无法获取用户输入数据,进而无法返回正确结果解决方案1、删除 form 表单 method 参数2、将 Submit 按钮 – <input type="button" class="btn btn-success" id="btn">Submit</submit>,修改为 – <input type="button"

2021-08-25 11:09:06 707

原创 FRI.Django 中的装饰器及 Auth 模块

FRI.Django 中的装饰器及 Auth 模块CBV 装饰器添加装饰器的三种方式No.1 Scheme 指名道姓from django.views import Viewfrom django.utils.decorators import method_decoratorclass MyLogin(View): @method_decorator(login_property) def get(self, request): return HttpRe

2021-08-22 13:22:00 134

原创 关于类中静态方法 @staticmethod 使用过程中的小细节

今天在写一个小模块的时候调用了 @staticmethod 方法,在模块编写完成后,运行代码发生了参数缺失的错误(TypeError: communicate() missing 1 required positional argument: ‘content’),代码如下这是由于 Email 类的 communicate 方法中并没有调用类中的属性,因此在添加 @staticmethod 装饰器后不需要传入 slef 参数,只要将 self 参数删除即可...

2021-08-21 18:31:12 245

原创 THU.Cookie 及 Session

THU.Cookie 及 Session批量插入数据 # for i in range(10000): # models.Book.objects.create(title='%s本书' % i) # models.Book.objects.filter(id__gt=0).delete() # 批量添加 book = [] # for i in range(100000): # book_obj = models.Book(title=

2021-08-20 16:06:38 89

原创 MON.神奇的双下划线及多表操作

MON.神奇的双下划线及多表操作神奇的双下滑线查询1、年龄大于 35 岁的数据res = models.User.objects.filter(age__gt=35)2、年龄小于 35 岁的数据res = models.User.objects.filter(age__lt=35)3、大于等于res = models.User.objects.filter(age__gte=35)4、小于等于res = models.User.objects.filter(age__lte=35)

2021-08-16 19:30:31 122

原创 FRI.模板语法及 ORM 常见操作

FRI.模板语法及 ORM 常见操作模板语法 – 传值def index(request): a = 123 b = 11.11 c = 'abcdefg' d = True e = [1, 2, 3,4 ] f = (5, 6, 7) g = {8, 9 ,10} h = {'name': 'egon', 'age': 18, 'k1':[1, {"hobby":'football'}]} # 模板中使用函数,不要加括号

2021-08-14 19:25:24 116

原创 THU.路由介绍及 JsonResponse

THU.路由介绍及 JsonResponse路由介绍路由匹配# 路由匹配url(r'test', views.test),url(r'testadd', views.testadd)"""url 方法第一个参数是正则表达式 只要第一个参数正则表达式能够匹配到的内容,name 就会立刻停止往下匹配 直接执行对应的视图函数 输入 url 的时候会默认加 '/' Django 内部会自动进行重定向 '/' 会在进行一次匹配"""分组给某一段正则表达式用小括号括起来

2021-08-14 19:21:50 168

原创 CBV 源码剖析

FBV 和 CBVFBV:funcation base view -- 基于函数的视图CBV:class base view -- 基于类的视图 1、先写一个类 2、继承 View 3、url(r'^login/', views.Mylogin.as_view())CBV 是根据请求方式区别访问哪个方法"""CBV - 能够直接根据请求方式不同直接匹配对应的方法执行"""CBV 源码urlpatterns = [ url(r'^admin/', admin.

2021-08-14 19:18:06 307

原创 WARNINGS: ?: (urls.W005) URL namespace ‘admin‘ isn‘t unique. You may not be able to reverse all URLs

在启动 Django 时发现出现如下警告这是由于在分发路由的过程中,总路由和子路由中的 url 使用了相同的名称空间在这里插入图片描述解决方法:删除子路由中的相同 url 即可

2021-08-14 18:34:40 2086

原创 XSS 攻击简述

XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是JavaScript,但实际上也可以包括Java、 VBScript、ActiveX、 Flash 或者甚至是普通的HTML。使用 Django 也可以简单模拟次效果def xss(request): s = ''' <script> for (let i=0; i<10000000000; i++){

2021-08-13 17:02:20 282

原创 Django 模板语法时间显示误差问题

在使用以下方法时发现,通过此方法在页面渲染出来的时间要比北京时间推迟8个小时import datetimedef show(request): ctime = datetime.datetime.now() return render(request, 'data.html', locals())<p>{{ ctime|date:'Y-m-d H:i:s' }}</p>这是由于 Django 的 settings.py 配置文件中时区设置默认为美国时区

2021-08-13 16:51:30 310

原创 关于 Django 中 JsonResponse 序列化之后依旧乱码的问题

在使用 JsonResponse 进行序列化时,将 json_dumps_params 修改之后,使用 Safari 浏览器显示结果发现结果依旧为乱码def checkout(request): user_dict = {'IU': '大宝贝', 'Alex': 19} # json_dict = json.dumps(user_dict, ensure_ascii=False) return JsonResponse(user_dict, json_dumps_params={'

2021-08-12 21:14:46 316

原创 Django 请求生命周期流程图

Django 请求生命周期流程图扩展知识点缓存数据库 - 浏览器想后端发送请求,在经过 Django 中间件之后,会先从缓存数据库寻找数据,如果没有则向后端数据库要数据。后端返回数据结果的同时在缓存数据库保存一份,类似于 DNS 解析过程 - 提高效率和响应时间...

2021-08-11 22:23:16 212

原创 WED.Django 数据操作及创建表关系

WED.Django 数据操作及创建表关系增from app import modles方式一res = modles.User.objcets.create(username=username,password=password)# 返回值就是当前被创建的对象本身print(res.username, res.password)方式二user_obj = modles.User(username=username, password=password)user_obj.save()

2021-08-11 22:22:16 109

原创 TUE.Django 链接 MySQL 及 Request 对象方法

TUE.Django 链接 MySQL 及 Request 对象方法Django 小白必备三板斧1.HttpResponse - 返回字符串类型数据 2.render - 返回 HTML 文件3.redirect - return redirect('http://www.mzitu.com/') - return redirect('/home/')request 对象方法def login(request): """ 返回一个登录界面 get 请求和

2021-08-10 12:26:10 99

原创 Django 从 MySQL 获取数据,数据无法校验成功的现象

def login(request): if request.method == 'POST': # 获取用户的用户名和密码 username = request.POST.get('username') password = request.POST.get('password') # 利用 ORM 操作, 并校验数据是否正确 user_obj = models.User.objects.filter(usernam

2021-08-10 11:53:28 171

转载 Requested setting INSTALLED_APPS, but settings are not

python交互环境导入模块出错django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.

2021-08-10 11:34:35 433

原创 cryptography is required for sha256_password or caching_sha2_password

开启Django服务时出现错误,错误信息如下:RuntimeError: cryptography is required for sha256_password or caching_sha2_password原因是缺少 cryptography 模块,安装模块即可

2021-08-10 11:29:36 120

转载 Django 迁移数据库可能出现的错误

1.输入:python3 manage.py makemigrations出现的错误:ModuleNotFoundError: No module named 'MySQLdb'解决方案:要导入pymysql模块那么具体在哪里导入呢?如下图: 在Diango_ORM_Muti文件下的 __init__.py文件里 写下面代码: import pymysql pymysql.install_as_MySQLdb()2.重新输入:python3 manage.py mak

2021-08-09 22:18:15 889

原创 MON.初识 Django

MON.初识 Django纯手撸 Web 框架HTTP 协议"""网络协议HTTP 协议 明文传输数据HTTPS 协议 密文传输数据websocket 协议 密文传输数据四大特性 1、基于请求响应 2、基于 TCP、IP 作用于应用层之上的协议 3、无状态 3、短/长链接 数据格式 请求首行 请求头 请求体 响应状态码 1xx 2xx 200 3xx 301、302 4xx 403、404 5xx 500"""

2021-08-09 20:26:14 93

原创 Django:TypeError: unsupported operand type(s) for /: ‘str‘ and ‘str‘

用 Pycharm 创建第一个 Django 项目,结果第一次运行就是满眼红色进入错误行,并根据报错提示分析,可得知是由于是在列表的内使用了路径分隔符’/’,但这在列表中直接使用并不合适。因此 Pycharm 将其当作了算数运算符中的除号,进而转变为两个字符串相除,所以报错想要排除 bug,只需要修改路径拼接命令即可'DIRS': [BASE_DIR / 'templates'] --> 'DIRS': [str.format(BASE_DIR, '/templates')]修改完毕后重新运

2021-08-07 22:50:46 415

原创 Duplicated jQuery selector

// 设置值$(':text').val('ly')// 获取值console.log($(':text').val())在使用 jQuery 书写这两行代码是,Pycharm 会给出 Duplicated jQuery selector 的警告提示,这是由于上面代码中两处使用了同一个id选择器,JQuery建议你使用一个变量去存储这个选择器,而不是每次用的时候便拿来调用一下因此只需要为 id 选择器定义一个变量即可解决此问题// 设置值let id = ':text'$(id).val

2021-08-07 16:50:36 223

原创 THU.JavaScript

THU.JavaScriptJavaScript语言基础变量声明JavaScript的变量名可以使用 _,数字,字母,$组成,不能以数字开头声明变量使用 var,let 变量名 ; 的格式来进行声明注意1.变量名是区分大小写的。2.推荐使用驼峰式命名规则。3.保留字不能用做变量名。补充:1.ES6 新增了 let 命令,用于声明变量。其用法类似于var,但是所声明的变量只在let命令所在的代码块内有效。例如:for循环的计数器就很适合使用let命令。2.ES6 新增 co

2021-08-05 23:29:13 90

原创 WED.CSS 样式补充及 JavaScript 简介

WED.CSS 样式补充及 JavaScript 简介背景属性<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title> <style> div { width: 400px; height:400px;

2021-08-05 19:37:26 117

原创 TUE.HTML 表单及 CSS

TUE.表单及 CSS表格<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body> <table border="1"> # border 即表示表格 <thead> <tr> # 一行数据

2021-08-03 23:48:20 100

原创 SQL注入

什么是 SQL 注入?- 利用 SQL 中的一些特殊语法,绕过了 SQL 语句import pymysqlconn = pymysql.connect( host='127.0.0.1', port=3306, user='root', password='xxxxx', database='练习题', charset='utf8', autocommit=True,)cursor = conn.cursor(cursor=pymysql.cursors.DictC

2021-07-30 19:55:42 74

原创 THU.查询条件

查询条件having# 功能与 where 一样where 在分组之前用,where 中的条件必须在表中存在having 在分组之后用distinct# 去重前提条件,数据必须一模一样如果数据中有主键,去重就失去意义order byorder by <字段> asc; 升序排序order by <字段> desc; 降序排序# oder by 默认为升序多重排序order by <字段>, <字段> desc;# 必须先执行第

2021-07-30 19:45:54 75

原创 关于 Navicat 使用过程中字段查找不存在的问题

如上图所示,报错提示 ‘在列表中存在未知列’,这是因为 AVG 为 MySQL 的内置函数,因此 Navicat 由于无法正确识别这是函数还是字段名而报错。解决方案:将 AVG(num) 使用 AS 重命名即可,如下...

2021-07-29 16:32:48 1575

原创 WED.约束条件

WED.约束条件约束条件在已有条件的基础上再做限制unsigned设置无符号zerofill空余位置用 0 填充not null非空空字符串也显示为 NULL,但不等于 NULLdefault 12:00默认值unique'唯一限制'1.单列唯一create table <表名>(<字段> <数据类型>, <字段> <数据类型> unique)2.多列唯一create table &

2021-07-28 17:11:49 65

原创 TUE.MySQL 存储引擎及数据类型

TUE.MySQL 存储引擎及数据类型存储引擎存储引擎即存储数据的方式如何查看存储引擎show engines;有哪些存储引擎- MyISAM(掌握) ·MySQL5.5 及之前版本的默认引擎 ·查询速度闭 InnoDB 快,但安全性较低 # 不支持事务 # 表级锁-文件 ·frm --> 表结构 ·MYD --> 表数据 ·MYI --> 索引(目录),优点:查询速度快- InnoDB(掌握) ·MySQL5.6 及之

2021-07-27 16:35:40 66

原创 MON.MySQL

Mysql数据库SQL、DB、DBMS 分别是什么DB:DataBase – 数据库,数据库实际上在硬盘上以文件的形式存在DBMS:DataBase Management System – 数据库管理系统(本质上是 C/S 架构)SQL:结构化查询语言,是一门标准通用的语言,属于高级语言。标准的 SQL 适合于所有数据库产品。SQL 语句在执行的时候,实际上内部也会先进编译,然后再进行 SQL(SQL 语句的编译由 DBMS完成)三者之间的关系DBMS 负责执行 SQL 语句,通过执行

2021-07-27 16:34:21 114

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除