摘要:
1、安装django-sslserverdjango默认的runserver使用的是http协议,如果需要https协议,需要安装django-sslserverpip install django-sslserver2、配置settings.py文件在INSTALLED_APPS下添加'sslse 阅读全文
posted @ 2022-05-31 16:36
郭祺迦
阅读(810)
评论(0)
推荐(0)
摘要:
终端项目目录下python manage.py migrate flush # 或者 python manage.py migrate app(app的名字) zero 阅读全文
posted @ 2022-05-31 16:18
郭祺迦
阅读(398)
评论(0)
推荐(0)
摘要:
示例1:# -*- coding: utf-8 -*- import aiomysql import asyncio async def test_mysql(): # 网络IO操作,连接MySQL conn = await aiomysql.connect(host='127.0.0.1', po 阅读全文
posted @ 2022-05-31 14:12
郭祺迦
阅读(149)
评论(0)
推荐(0)
摘要:
假如你的并发达到2000个,程序会报错:ValueError:too many file descriptors in select()。报错的原因字面上看是Python调取的select对打开的文件有最大数量的限制,这个其实是操作系统的限制,Linux打开文件的最大数默认是1024,Windows 阅读全文
posted @ 2022-05-31 14:12
郭祺迦
阅读(364)
评论(0)
推荐(0)
摘要:
在使用python代码操作Redis时,连接/操作/断开都是IO。pip3 install aioredis# -*- coding: utf-8 -*- import asyncio import aioredis async def execute(address, password): pri 阅读全文
posted @ 2022-05-31 14:11
郭祺迦
阅读(224)
评论(0)
推荐(0)
摘要:
1、异步上下文管理器此种对象通过定义__aenter__()和__aexit__()方法来对async with语句中的环境进行控制。import asyncio class AsyncContextManage: def __init__(self): self.conn = conn async 阅读全文
posted @ 2022-05-31 14:10
郭祺迦
阅读(56)
评论(0)
推荐(0)
摘要:
是asyncio的时间玄幻的替代方案。事件循环 > 默认asyncio的事件循环。pip3 install uvloopimport asyncio import uvloop asyncio.set_event_loop_policy(uvloop.EventLoopPolicy()) # 编写a 阅读全文
posted @ 2022-05-31 14:10
郭祺迦
阅读(112)
评论(0)
推荐(0)
摘要:
1、什么是异步迭代器实现了__aiter__()和__anext__()方法的对象。__anext__必须返回一个awaitable对象。async for会处理异步迭代器的__anext__()方法所返回的可等待对象,直到引发一个StopAsyncIteration异常。由PEP 492引入。2、 阅读全文
posted @ 2022-05-31 14:09
郭祺迦
阅读(77)
评论(0)
推荐(0)
摘要:
1、concurrent.futures.Future对象使用线程池、进程池实现异步操作时用到的对象。具体参考:2020-11-16 ThreadPoolExecutor 的用法及实战以后写代码可能会存在交叉使用。例如:你的某个项目都是基于协程异步编程,加入mysql不支持协程,那么在访问数据库的时 阅读全文
posted @ 2022-05-31 14:08
郭祺迦
阅读(183)
评论(0)
推荐(0)
摘要:
1、案例:asyncio+不支持异步的模块# -*- coding: utf-8 -*- import asyncio import requests async def download_image(url): # 发送网络请求,下载图片(遇到网络下载图片的IP请求,自动化切换到其他任务) pri 阅读全文
posted @ 2022-05-31 14:08
郭祺迦
阅读(48)
评论(0)
推荐(0)
摘要:
Task继承Future,Task对象内部await结果的处理基于Future对象来的。示例1:# python3.7的写法 import asyncio async def main(): # 获取当前事件循环 loop = asyncio.get_running_loop() # 创建一个任务( 阅读全文
posted @ 2022-05-31 14:07
郭祺迦
阅读(47)
评论(0)
推荐(0)
摘要:
白话:在事件循环中添加多个任务Tasks用于并发调度协程,通过asyncio.create_task(协程对象)的方式创建Task对象,这样可以让协程加入事件循环中等待被调度执行。处理使用async.create_task()函数以外,还可以用低层级的loop.create_task()或ensur 阅读全文
posted @ 2022-05-31 14:06
郭祺迦
阅读(119)
评论(0)
推荐(0)
摘要:
协程函数:定义函数时候async def 函数名。协程对象:执行 协程函数() 得到的就是协程对象async def func(): pass result = func() #result就是协程对象注意:执行协程函数创建协程对象,函数内部的代码不会执行的。如果想要执行协程函数内部代码,必须要将协 阅读全文
posted @ 2022-05-31 14:05
郭祺迦
阅读(40)
评论(0)
推荐(0)
摘要:
1、awaitawait + 可等待的对象(协程对象、Future、Task对象 --> IO等待)示例1:import asyncio async def func(): print('来玩啊') response = await asyncio.sleep(2) print('结束:', res 阅读全文
posted @ 2022-05-31 14:05
郭祺迦
阅读(130)
评论(0)
推荐(0)
摘要:
1、事件循环理解成为一个死循环,去检测并执行某些代码。# 伪代码 任务列表 = ['任务1', '任务2', '任务3', ...] while True: 可执行的任务列表, 已完成的任务列表 = 去任务列表中检查所有的任务, 将"可执行"和"已完成"的任务返回 for 就绪任务 in 可执行的任 阅读全文
posted @ 2022-05-31 14:04
郭祺迦
阅读(129)
评论(0)
推荐(0)
摘要:
1、协程协程不是计算机提供的,是由程序员人为的创建的协程(Coroutine):也可以被称为微线程,是一种用户态内的上下文切换技术。简而言之,其实就是通过一个线程实现代码块相互切换执行。2、实现协程的几种方法greenletyield关键字asyncio装饰器(py3.4)async await关键 阅读全文
posted @ 2022-05-31 14:01
郭祺迦
阅读(92)
评论(0)
推荐(0)
摘要:
在接口里我们经常遇到这种需求,需要将对象的各个字段值返回user = User.objects.get(id=1)第一种方法,没错,我这样写过:user_dict = {} user_dict['username'] = user.username user_dict['email'] = user 阅读全文
posted @ 2022-05-31 13:58
郭祺迦
阅读(801)
评论(2)
推荐(1)
摘要:
简介Django Debug Toolbar是Django开发中必备利器,可以帮助开发者快速了解项目的整体信息以及每个页面包括sql信息,http相关信息。1、安装如图,使用pip命令直接安装即可;(注意:一般我们会用virtualenvwrapper创建虚拟开发环境,那么切记一定要先是workon 阅读全文
posted @ 2022-05-31 13:57
郭祺迦
阅读(438)
评论(0)
推荐(0)
摘要:
传Q对象,构造搜索条件首先还是需要导入模块 from django.db.models import Q # 传入条件进行查询: q1 = Q() q1.connector = 'OR' q1.children.append(('id', 1)) q1.children.append(('id', 阅读全文
posted @ 2022-05-31 13:46
郭祺迦
阅读(566)
评论(0)
推荐(0)
摘要:
PyMySQL安装pip install pymysql基本使用import pymysql # 连接数据库 conn = pymysql.connect( host='数据库的地址', user='数据库用户名', passwd='数据库密码', port=3306, db='数据库名', cha 阅读全文
posted @ 2022-05-31 13:45
郭祺迦
阅读(310)
评论(0)
推荐(0)
摘要:
Django框架本身提供了两种事务操作的方法(针对mysql) 从django1.6开始,Django的事务操作方法主要通过django.db.transation模块完成启用事务用法1:from django.db import transaction from rest_framework.vi 阅读全文
posted @ 2022-05-31 13:44
郭祺迦
阅读(204)
评论(0)
推荐(0)
摘要:
1、信号有哪些Model_Signalspre_init:Django中的model对象执行其构造方法前,自动触发post_init:Django中的model对象执行其构造方法后,自动触发pre_save:Django中的model对象保存前,自动触发post_save:Django中的model 阅读全文
posted @ 2022-05-31 13:42
郭祺迦
阅读(432)
评论(0)
推荐(0)
摘要:
1、问题描述在正式编写django项目的时候,初始使用时直接创建了应用之后,没有进行归纳就开始直接使用了。假设我有四个应用【用户】、【商品】、【订单】、【购物车】,直接创建之后的文档结构如下:除去应用的目录,还有其他文档docs目录、项目的dailyfresh目录,全部在一个层级就会比较混乱。怎么处 阅读全文
posted @ 2022-05-31 13:41
郭祺迦
阅读(500)
评论(0)
推荐(0)
摘要:
1、APScheduler简介在平常的工作中几乎有一半的功能模块都需要定时任务来推动,例如项目中有一个定时统计程序,定时爬出网站的URL程序,定时检测钓鱼网站的程序等等,都涉及到了关于定时任务的问题,第一时间想到的是利用time模块的time.sleep()方法使程序休眠来达到定时任务的目的,虽然这 阅读全文
posted @ 2022-05-31 13:40
郭祺迦
阅读(2991)
评论(0)
推荐(0)
摘要:
首先了解wsgi是一个Python web服务器,uwsgi实现了wsgi所有的功能,性能文档,效率高的服务器。uwsgi是一个通用server服务器,支持Python,ruby等多种语言。uwsgi支持自动伸缩,当空闲超过一定时间,会关闭worker,当请求处理不过来排队时,会创建新的worker 阅读全文
posted @ 2022-05-31 13:40
郭祺迦
阅读(1555)
评论(0)
推荐(0)
摘要:
1、一主一从数据库配置setting.pyDATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'db_hydra1', 'HOST': '192.168.50.51', 'PORT': 3306, 'USE 阅读全文
posted @ 2022-05-31 13:39
郭祺迦
阅读(105)
评论(0)
推荐(0)
摘要:
2、scroll滑动事件概念从一个元素滑动到另一个元素,直到页面自动停止方法名# 从一个元素滑动到另一个元素,直到页面自动停止 # 参数: # origin_el:滑动开始的元素 # destination_el:滑动结束的元素 driver.scroll(origin_el, destinatio 阅读全文
posted @ 2022-05-31 10:01
郭祺迦
阅读(93)
评论(0)
推荐(0)
摘要:
一、滑动和拖拽事件应用场景我们在做自动化测试的时候,有些按钮是需要滑动几次屏幕后才会出现,此时,我们需要使用代码来模拟手指3的滑动,也就是我们学习的滑动和拖拽事件1、swipe滑动事件概念从一个坐标位置滑动到另一个坐标位置,只能是两个点之间的滑动方法名# 从一个坐标位置到另外一个坐标位置,只能是两个 阅读全文
posted @ 2022-05-31 10:00
郭祺迦
阅读(111)
评论(0)
推荐(0)
摘要:
应用场景根据特征定位到元素后,使元素的属性名获取对应的属性值方法名# 对element进行点击操作 # 参数: # value:要获取的属性名 # 返回值: # 根据属性名得到的属性值 element.get_attribute(value) # value:元素的属性示例打开设置获取所有resou 阅读全文
posted @ 2022-05-31 09:59
郭祺迦
阅读(63)
评论(0)
推荐(0)
摘要:
元素操作API1、点击元素应用场景需要点击某个按钮的时候使用方法名# 对element按钮进行点击操作 element.click()示例打开设置点击放大镜按钮核心代码:driver.find_element_by_id('com.android.settings:id/search').click 阅读全文
posted @ 2022-05-31 09:57
郭祺迦
阅读(172)
评论(0)
推荐(0)
摘要:
1、应用场景针对所有定位元素的超时时间设置为不同的值的时候2、概念等待元素加载指定的时长,超出时长抛出TimeoutException异常3、步骤导包创建WebDriverWait对象调用WebDriverWait对象的until方法4、方法参数解释# 参数 # driver:驱动对象 # time 阅读全文
posted @ 2022-05-31 09:55
郭祺迦
阅读(100)
评论(0)
推荐(0)
摘要:
1、应用场景针对所有定位元素的超时时间设置为同一个值的时候2、概念等待元素加载指定的时长,超时时长抛出NoSuchElementException异常3、步骤在获取driver对象后,使用driver调用implicitly_wait方法即可。4、方法参数解释# 参数 # timeout:超时的时长 阅读全文
posted @ 2022-05-31 09:54
郭祺迦
阅读(60)
评论(0)
推荐(0)
摘要:
1、应用场景和定位元素相同,但如果想要批量的获取某个相同特征的元素,使用定位一组元素的方式更加方便。2、方法名# 通过id定位一组元素 # 参数: # id_value:元素的resource-id属性值 # 返回值: # 列表,定位到的所有符合调价你的元素 driver.find_elements 阅读全文
posted @ 2022-05-31 09:52
郭祺迦
阅读(48)
评论(0)
推荐(0)
摘要:
1、应用场景了解这些注意点,可以以后在出错误的时候,更快速的定位问题原因2、示例使用find_element_by_xx或find_elements_by_xx的方法,分别传入一个没有"特征"会是什么结果呢?核心代码:driver.find_element_by_id('xxx') driver.f 阅读全文
posted @ 2022-05-31 09:52
郭祺迦
阅读(28)
评论(0)
推荐(0)

浙公网安备 33010602011771号