
python
文章平均质量分 75
越墨
处事树为模,本固任从枝叶动;
立身钱作样,内方还要外边圆。
展开
-
django项目前期准备
django项目前期准备一、配置管理二、数据库连接三、日志管理一、配置管理在生产中,我们需要两套配置,一套为我们开发环境配置,另一套为生产环境配置,我们需要将django项目创建好的settings文件中的所有内容复制到开发环境配置中,然后删除settings文件。接下来,我们将manage.py文件中的配置文件路径进行更改:二、数据库连接在数据库服务器中创建一个新数据库并授权(权限根据自己需求调整):在dev配置文件中配置要连接的数据库:在内部目录__init__文件中引入pymys原创 2021-03-10 13:26:15 · 361 阅读 · 0 评论 -
drf:分页
drf:分页一、分页的基本写法1、全局分页2、局部分页二、PageNumberPagination一、分页的基本写法1、全局分页全局分页需要在django配置文件中写入:REST_FRAMEWORK = { 'DEFAULT_PAGINATION_CLASS': 'rest_framework.pagination.LimitOffsetPagination', 'PAGE_SIZE': 3}page_size表示每一页显示数据的条数我们来测试一下,访问页面:如图,分页成原创 2021-01-24 20:21:36 · 1058 阅读 · 0 评论 -
drf:认证及权限
drf:认证及权限一、认证Authentication1、全局认证2、局部认证二、权限1、全局权限2、局部权限三、测试一、认证Authentication在drf中我们还可以进行权限和认证操作,我们先来看看认证1、全局认证全局认证我们只需在django配置文件中加入一个字典即可:REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': [ 'rest_framework.authentication.BasicAuthenti原创 2021-01-24 18:14:47 · 1344 阅读 · 0 评论 -
drf:路由
drf:路由一、介绍二、DefaultRouter三、SimpleRouter一、介绍我们在使用视图集的过程中,要对路由进行映射,当扩展方法过多时,路由会写的很长,如下:urlpatterns = [ path('bookinfo/',BookOperation.as_view({'get':'list','post':'create'})), re_path(r'bookinfo/(?P<pk>\d+)/',BookOperation.as_view({'get':'retrieve原创 2021-01-24 17:38:38 · 1166 阅读 · 0 评论 -
Tornado框架part1
Tornado框架part1一、tornado介绍1、介绍2、特点3、主要部分二、项目的基本运行1、安装2、开启调试模式3、路由拆分4、视图编写5、多进程模式三、请求1、常见请求信息获取2、接收查询字符串3、接收请求体4、接收路由参数一、tornado介绍1、介绍Tornado是使用Python开发的全栈式(full-stack)Web框架和异步网络库,最早由4名Google前软件工程师(布雷特·泰勒)2007创办的Friendfeed(一个社交聚合网站)开发而来的。通过使用非阻塞IO,Tornado原创 2021-01-18 21:11:33 · 606 阅读 · 1 评论 -
drf:视图
drf:视图一、GenericApiView1、APIview(一级视图)2、GenericApiView(二级视图)二、Mixin三、三级视图四、视图集一、GenericApiView1、APIview(一级视图)为了方便测试,我们先定义两张表,一张为书籍表,一张为作者表,书籍和作者通过id来关联我们先来看一段基本的APIview代码:序列化器:from rest_framework.serializers import ModelSerializerfrom rest_framework原创 2021-01-17 17:43:05 · 628 阅读 · 11 评论 -
vue+django前后端分离通信流程图
vue+django前后端分离通信流程图原创 2020-12-22 20:52:30 · 1365 阅读 · 1 评论 -
websocket
websocket一、websocket简介二、flask-websocket的安装及初始化操作三、创建socket连接四、基于事件接受信息1、基于未定义事件进行通信2、基于自定义事件进行通信五、服务端响应信息六、基于房间管理分发信息七、服务端定时推送数据一、websocket简介一直以来,HTTP是无状态、单向通信的网络协议,即客户端请求一次,服务器回复一次,默认情况下,只允许浏览器向服务器发出请求后,服务器才能返回相应的数据。如果想让服务器消息及时下发到客户端,需要采用类似于轮询的机制,大部分情况就原创 2020-12-19 19:33:09 · 971 阅读 · 2 评论 -
JWT流程图
JWT流程图原创 2020-12-14 14:14:02 · 774 阅读 · 0 评论 -
异步任务队列celery流程图
异步任务队列celery流程图原创 2020-12-14 14:12:07 · 728 阅读 · 0 评论 -
FLASK框架part3
FLASK框架part3一、jinja21、加载模版2、模版语句3、模版中显示内置变量或函数4、内置过滤器一、jinja2Flask内置的模板语言,它的设计思想来源于 Django 的模板引擎,并扩展了其语法和一系列强大的功能。渲染模版函数Flask提供的 render_template 函数封装了该模板引擎render_template 函数的第一个参数是模板的文件名,后面的参数都是键值对,表示模板中变量对应的真实值。1、加载模版from flask import Flask,rende原创 2020-11-22 21:18:17 · 226 阅读 · 1 评论 -
FLASK框架part2
FLASK框架part2一、http的会话控制1、会话控制-Cookie2、会话控制-session二、视图请求钩子函数三、执行上下文context1、请求上下文(request context)2、应用上下文(application context)四、启动终端脚本五、自定义终端命令六、自定义脚手架命令及仿真测试数据1、通过自定义终端命令来创建项目脚手架2、仿真测试数据一、http的会话控制所谓的会话,就是客户端浏览器和服务器网站之间一次完整的交互过程会话的开始是在用户通过浏览器第一次访问服务端网站原创 2020-11-19 22:44:00 · 504 阅读 · 0 评论 -
FLASK框架part1
FLASK框架part1一、flask简介二、flask安装及环境构建三、flask框架详解1、基本运行2、加载配置3、传递路由参数(没有限定类型)4、传递路由参数(通过路由转换器限定路由参数类型)5、自定义转换器6、路由限定请求方式7、路由、视图分离8、请求中的html表单数据9、来自客户端请求的其他数据10、数据响应11、跳转一、flask简介Flask诞生于2010年,是Armin ronacher(人名)用 Python 语言基于 Werkzeug 工具箱编写的轻量级Web开发框架。Flask原创 2020-11-18 20:59:33 · 331 阅读 · 2 评论 -
drf--part2
drf--part2一、局部钩子和全局钩子1、局部钩子2、全局钩子3、常用字段和参数二、视图相关1、保存数据2、更新数据三、modelSerializer的使用四、响应状态码一、局部钩子和全局钩子接上篇:1、局部钩子在反序列化校验中,我们不仅可以通过validators来自定义校验函数,也可以使用钩子函数来进行校验,首先我们介绍局部钩子。局部钩子用在单个属性的校验,具体写法如下:from rest_framework import serializersclass StudentSerial原创 2020-10-24 16:02:43 · 649 阅读 · 11 评论 -
drf--part1
drf一、序列化1、序列化2、反序列化二、drf(Django Rest_Framework)1、环境安装与配置三、drf完全简写代码的过程一、序列化在api接口的开发中,最核心、最常见的部分就是序列化,所谓序列化就是把数据转换格式,序列化可以分为两个阶段:1、序列化把我们识别的数据转换成指定的格式提供给别人例如:在Django中,我们默认获取到的数据是模型对象,但模型对象无法直接提供给前端或别的平台使用,所以我们要把数据序列化,将数据转换为字符串或json数据,提供给别人2、反序列化把别人提原创 2020-10-21 22:23:08 · 464 阅读 · 0 评论 -
Django实现简单图书管理系统
Django实现简单图书管理系统一、系统功能二、页面效果1、登陆界面2、管理页面一、系统功能1、用户通过用户名密码登陆图书管理页面2、在管理页面可进行添加、编辑、删除书籍3、前端进行增删改时,数据库需同步进行操作4、可随时注销用户,退出登陆并清除cookie缓存二、页面效果1、登陆界面用户通过指定用户名密码登陆后,发起session会话,浏览器存储session_id2、管理页面在管理页面用户可进行增删改...原创 2020-10-09 21:55:29 · 13082 阅读 · 27 评论 -
wsgiref实现web框架
wsgiref web框架一、web框架基本写法二、wsgiref版web框架三、wsgiref版web框架(MTV模式)一、web框架基本写法python服务端:用socket建立服务端、客户端通信,多线程加载文件import socketfrom threading import Threadserver=socket.socket()server.bind(('127.0.0.1',8002))server.listen()def html(conn): with open('we原创 2020-09-10 00:02:17 · 591 阅读 · 0 评论 -
mysql数据库part3(查询进阶)
mysql数据库part3一、查询语法1、where条件的使用2、group by3、having4、order by5、limit 限制查询条数(数据分页)6、(了解)可以使用正则表达式查询数据(不推荐,效率不高,基本可使用模糊查询代替)二、多表查询1、内连接(inner join)2、外连接三、子查询一、查询语法sql查询语句基本语法:select .. from .. where ..group by .. having .. order by .. limit..1、where条件的使用原创 2020-08-27 08:25:56 · 840 阅读 · 0 评论 -
mysql数据库part1
mysql数据库一、mysql基本操作二、mysql的增删改查1、库操作2、表操作3、数据操作三、常用数据类型SQL语言分为4个部分:DDL(定义)、DML(操作)、DQL(查询)、DCL(控制)1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER2、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE3、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE4、DQL语句 数据库原创 2020-08-25 00:07:19 · 1584 阅读 · 0 评论 -
Python多进程part2
进程part2一、lock锁1、基本用法:2、模拟抢票3、Semaphore信号量二、事件1、手动添加阻塞2、将属性值进行变更3、wait可以加参数,表示最大等待时间:4、手动添加动态堵塞实现交通灯:三、进程队列1、基本写法2、设置队列长度3、进程之间的数据互享四、生产者和消费者一、lock锁上锁和解锁是一对,只上锁不解锁会发生死锁现象(代码阻塞,不往下执行)互斥锁:互斥锁是进程之间的相互排斥,谁先抢到这个锁资源就先使用,后抢到后使用1、基本用法:我们先来看看只上锁不解锁情况:from mult原创 2020-08-23 22:49:15 · 174 阅读 · 0 评论 -
Python实现多进程part1
进程part1一、进程介绍1、获取子父进程2、进程的基本使用2、创建带有参数的进程3、进程之间的数据彼此隔离4、多个进程之间的异步并发二、join1、基本语法2、使用自定义类的方法创建进程三、守护进程一、进程介绍进程就是正在运行的程序,它是操作系统中,资源分配的最小单位资源分配:分配的是cpu和内存等物理资源,进程号是进程的唯一标识获取当前进程–子进程异步和同步:1、获取子父进程os.getpid()获取当前进程的父进程os.getppid()为解决Windows系统和Linux系统原创 2020-08-23 11:55:27 · 638 阅读 · 0 评论 -
Python中socketserver及hashlib校验
socketserver及hashlib校验一、socketserver1、基本写法2、通过socketserver实现循环并发二、haslib1、基本用法2、加盐3、动态加盐4、hmac加密一、socketserver网络协议的最底层就是socket,基于socket模块,又封装了一层,就是socketserver,socketserver是为了实现server端tcp协议的并发1、基本写法server端写法:# 服务端#导入socket模块import socketserver#建立一个原创 2020-08-17 19:51:31 · 334 阅读 · 0 评论 -
Python网络编程
网络编程一、tcp基本语法二、tcp循环发消息三、udp基本语法四、udp循环发消息五、黏包1、黏包2、struct模块一、tcp基本语法通过套接字socket使服务端和客户端进行通讯,为保证数据完整性,tcp协议需进行三次握手,一次只能和一个客户端进行通讯服务端写法:# 服务端#导入套接字模块import socket#创建socket对象sk=socket.socket()#绑定服务器IP机端口sk.bind(("127.0.0.1",8080))#启用服务端监听状态sk.lis原创 2020-08-13 20:39:53 · 367 阅读 · 0 评论 -
Python实现ATM小程序
ATM小程序一、项目需求二、项目分析三、项目代码四、项目展示效果(新人如若写的不好望海涵)一、项目需求设计一个ATM存取款机小程序,实现以下功能:1、开卡功能:根据用户的用户名、身份证号、手机号、密码进行开卡,自动生成6位卡号,并卡内存入10元用户名:不能为空,只能为数字字母下划线身份证号:卡死生日年月日部分,不能出现日期以外的数字,18位数字(或+x 19位),一个身份证只能绑定一个卡号手机号:只能按照标准手机号码格式输入密码:固定6位,数字字母下划线卡号:生成卡号不能出现重复2、查询原创 2020-08-12 23:58:51 · 3621 阅读 · 1 评论 -
Python反射
反射一、hasattr二、getattr三、setattr四、delattr针对于类对象或者模块概念:通过字符串去操作类对象或者模块当中的成员(属性或者方法)一、hasattr检测对象/类是否有指定的成员语法:hasattr(类/对象,“成员”)class Man(): passclass Woman(): passclass Son(Man,Woman): def hobby(self): print("打篮球,玩电脑,游泳") def eat(self): print("原创 2020-08-10 23:41:14 · 163 阅读 · 0 评论 -
Python异常处理
异常处理一、认识异常处理1、IndexError报错2、KeyError报错3、NameError报错4、IndentationError报错5、AttributeError报错6、StopIteration报错7、AssertionError报错二、异常处理的基本语法1、基本语法2、带有分支的异常处理3、处理迭代器异常错误三、主动抛出异常1 、基本语法2、自定义异常类一、认识异常处理程序错误分为两种: 语法错误和异常错误语法错误:代码没有按照python规定语法去写,发明创造产生的错误异常错误:在原创 2020-08-10 20:44:27 · 346 阅读 · 0 评论 -
Python装饰器
装饰器一、装饰器的基本用法二、装饰器的嵌套三、用装饰器扩展带有参数的原函数四、用装饰器扩展带有参数和返回值的原函数五、用类装饰器来拓展原函数六、带有参数的函数装饰器七、带有参数的类装饰器装饰器:为原函数去扩展新功能,用新函数去替换旧函数作用:在不改变原代码的前提下,实现功能性扩展符号(语法糖):@一、装饰器的基本用法先来看下面这段代码:def extend(func): def newfunc(): print("I have a pen") func() return newfun原创 2020-08-10 19:01:30 · 140 阅读 · 0 评论 -
Python射击程序
射击程序"机枪扫射声中我们寻找遮蔽的战壕儿时沙雕的城堡毁坏了重新盖就好可是你那沾染血布满弹孔的军外套却就连祷告手都举不好"-------------------------------------------------------《最后的战役》周杰伦...原创 2020-08-07 00:00:38 · 827 阅读 · 0 评论 -
Python常用魔术方法
魔术方法一、__del__魔术方法(析构方法)二、\_\_str__ 和__repr__魔术方法1、\_\_str__2、\_\_repr__三、__cell__魔术方法四、\_\_bool__、\_\_add__、\_\_len__1、\_\_bool__魔术方法2、\_\_add__(与之相关的__radd__反向加法)3、__len__魔术方法五、与类相关的魔术属性一、__del__魔术方法(析构方法)触发时机:当对象被内存回收的时候自动触发[1、页面执行完毕回收所有变量 2、当多个对象指向同一地原创 2020-08-06 21:26:52 · 873 阅读 · 0 评论 -
Pyhton多态和单态
多态和单态一、多态二、__new__魔术方法1、基本写法:2、new触发时机快于init3、new和init参数一一对应三、单态模式一、多态不同的子类对象,调用相同的父类方法,产生不同的执行结果。关键字:继承、改写class Soidier(): def attack(self): pass def back(self): pass#陆军class Amry(Soidier): def attack(self): print("[陆军]搏击,射击") def back(se原创 2020-08-05 21:12:15 · 563 阅读 · 1 评论 -
Python常用模块part3
常用模块part3一、OS 对系统进行操作1、system一、OS 对系统进行操作import os (导入os模块)1、system在python中执行系统命令在这里插入代码片原创 2020-08-04 22:40:54 · 552 阅读 · 0 评论 -
Python继承
继承一、单继承二、多继承1、基本语法2、super用法三、菱形继承(钻石继承)四、init魔术方法一、单继承如果一个类继承另一个类,该类叫做子类(衍生类),被继承的类叫做父类(基类、超类)继承:分为单继承和多继承python中,所有的类都默认继承父类object首先来写一个例子:(1)子父继承后,子类可以继承父类的公有成员class Father(object): hair="黑色" nose="高鼻梁" eyes="大眼睛" __tall="1.74" def f_hobby(se原创 2020-08-04 20:37:29 · 396 阅读 · 0 评论 -
Python面向对象
面向对象part1一、面向对象的程序开发1、类的定义2、类的实例化3、类的基本结构4、类的命名二、面向对象封装--对象相关操作1、实例化对象访问公有及私有成员属性和方法2、实例化对象动态添加公有属性和方法三、面向对象封装 -- 类相关操作1、定义的类访问公有成员属性和方法2、定义的类动态添加公有成员属性和方法四、面向对象删除操作1、如何访问类中的私有成员2、实例化的对象/定义的类 删除公有成员属性和公有成员方法面向过程:优点:效率高,执行效率快缺点:维护性,移植性差,表达不出一类的语意面向对象:优原创 2020-08-03 23:17:25 · 495 阅读 · 0 评论 -
Python实现购物车小程序
购物车小程序一、实现功能二、设计思路(不唯一,本人思路不是最优解)三、程序代码四、代码效果新人写的不好还请见谅~一、实现功能1、具有充值功能2、商品展示功能3、购买流程4、余额结算功能5、余额不足可选择移除商品6、不想购物可退出购买流程二、设计思路(不唯一,本人思路不是最优解)以之前整理的知识点进行梳理。可分为6个部分进行设计:1、充值:开始时可充值购物卡,我们可以把充值记录追加到一个空列表中进行存储,并将此列表配置为全局变量2、商品信息处理:展示给用户的是一个自定义的展示页面,通原创 2020-08-02 23:55:54 · 4118 阅读 · 2 评论 -
Python常用模块part2
常用模块part2一、json1、dumps2、loads3、dump 针对于文件,把数据序列化后存储文件4、load 将文件中的字符串反序列化成原来的数据5、json和pickle之间的区别二、时间模块1、time2、localtime3、mktime4、ctime5、asctime(了解)6、sleep7、strftime8、strptime9、perf_counter (了解)10、进度条效果三、zipfile 压缩模块1、创建压缩包2、解压压缩包3、追加文件4、namelist 查看压缩包中原创 2020-08-02 00:37:58 · 584 阅读 · 0 评论 -
Python常用模块part1
常用模块part1一、内置方法1、abs 绝对值函数2、round 四舍五入3、sum 求和4、max 获取一个序列最大值5、min 获取一个序列最小值6、计算某个数值的x次方7、产生指定范围数据的可迭代对象8、bin 将十进制转换为二进制9、oct 将十进制转为八进制10、hex 将十进制转为十六进制11、chr 将ascii编码转换为字符12、ord 将字符转换为ascii编码13、eval 将字符串当作python代码执行14、exec 将字符串当作python代码执行(功能更强大原创 2020-08-01 20:56:37 · 782 阅读 · 0 评论 -
Python模块和包
模块和包一、模块部分1、 import (引入)2、from ... import ... (... 从...导入...)3、魔术属性的使用二、包部分1、导入包的使用2、from ... import ... (从包导入相应成员)3、单入口模式一、模块部分1、 import (引入)导入一次,终身受益,不会重复导入。语法:import + 模块|包1)导入任意路径下的模块自定义模块时,不能使用中文,也不能使用已使用的文件名,会被覆盖把路径添加到系统环境变量path当中,执行命令时,系统会自原创 2020-08-01 14:52:28 · 375 阅读 · 0 评论 -
python正则表达式part2
正则表达式part2一、正则函数1、search2、match(了解)3、split4、sub5、subn6、finditer7、compile二、正则表达式修饰符1、re.I2、re.M3、re.S一、正则函数1、search通过正则匹配出第一个对象返回,通过group取出对象返回返回匹配到的内容(匹配到一个就返回):import restrvar = "123 456 789 "obj=re.search("(\d)+",strvar)res=obj.group()print(res)原创 2020-07-31 20:11:48 · 208 阅读 · 0 评论 -
Python正则表达式part1
正则表达式一、单个字符的匹配1、预定义字符集1)\d 匹配数字2) \D 匹配非数字3)\w 匹配字母数字下划线4)\W 匹配非字母数字下划线5)\s 匹配任意空白符(\n \t \r ' ')6)匹配任意非空白符7)\n 匹配一个换行符8)\t 匹配一个制表符2、字符组[]二、多个字符的匹配1、量词1)?匹配0个或多个元素2)+ 匹配一个或多个元素3)* 匹配0个或多个元素4){m,n} 匹配m到n个元素2、贪婪匹配及非贪婪匹配3、\b 边界符4、以…开头,以…结尾三、匹配分组 ()四、命原创 2020-07-30 21:31:50 · 483 阅读 · 0 评论 -
递归函数(了解,难点)
递归函数一、递归函数一、递归函数自己调用自己的函数就是递归递: 去归: 回一去一回就是递归def func(n): print(n,"<====1====>") if n > 0: func(n-1) print(n,"<=====2====>")func(5)运行结果:代码解析:去的过程:n = 5 print(5,"<==1=>") 5>0 条件成立-> digui(5-1) => digui(4) 代码阻塞原创 2020-07-24 20:34:11 · 601 阅读 · 0 评论