虚拟环境管理之virtualenvwrapper安装使用步骤:
1.下载安装 virtualenvwrapper
pip3 install -i https://pypi.douban.com/simple virtualenvwrapper
2.执行脚本,让当前机器支持virtualenvwrapper,但是有一个问题,重启后,退出会话后,这个功能就失效了
3.配置全局变量,让每次登陆linux时候,就加载这个virtualenvwrapper.sh脚本文件,使得virtualenvwrapper这个工具生效
#打开这个用户环境变量配置文件,写入以下信息,e...
1.通过pip3安装虚拟环境 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv
通过virtualenv命令,创建第一个新的虚拟环境 virtualenv --no-site-packages --python=python3 venv1
virtualenv --no-site-packages --python=python3 venv2
virtualenv --no-site-packages --python=python3 venv3
...
申明: 文章为转载
原文地址原文
RSA是一种非对称加密算法
非对称加密需要公钥(publickey)和私钥(privatekey)
消息传递前需要先生成公钥和私钥,发送方将待发送消息用公钥加密,发送给接收方。接收方收到消息后,用私钥解密。在这个过程中,公钥负责加密,私钥负责解密,消息在传输过程中即使被截获,攻击者由于没有私钥,无法破解截获的消息。
非对称加密算法的加解密速度低于对称加密算法,但是安全性更高。
非对称加密算法:RSA、DSA、ECC等算法
RSA加密解密过程:
import rsa
# rsa...
两种方式实现
1 使用最后时间判断
class Throttle(MiddlewareMixin):
VIEW_LIMIT = {}
def process_request(self,requst):
# 限制访问次数
# 1分钟内只允许访问3次
remote_addr = requst.META['REMOTE_ADDR']
print(self.VIEW_LIMIT)
if remote_addr not in self.VIEW_LIMIT:
...
测试代码:
models.Tb1.objects.filter(id__lt=10, id__gt=1) # 获取id大于1 且 小于10的值
models.Tb1.objects.filter(id__in=[11, 22, 33]) # 获取id等于11、22、33的数据
models.Tb1.objects.exclude(id__in=[11, 22, 33]) # not in
models.Tb1.objects.filter(name__contains="ven") # 获取name字段包含"ven"的
models.Tb1.objects.f...
常用的查询操作
<1> all(): 查询所有结果
<2> get(**kwargs): 返回与所给筛选条件相匹配的对象,返回结果有且只有一个,如果符合筛选条件的对象超过一个或者没有都会抛出错误。
<3> filter(**kwargs): 它包含了与所给筛选条件相匹配的对象
<4> exclude(**kwargs): 它包含了与所给筛选条件不匹配的对象
<5> values(*field): 返回一个ValueQuerySet——一个特殊的QuerySet,运行后得到的并不是一系列model的实例化对...
0x01 错误原因
python manage.py makemigrations
报错提示: AttributeError: 'str' object has no attribute 'decode'
0x02 解决
直接定位到报错文件
C:\python38\Lib\site-packages\django\db\backends\mysql\operations.py
修改源码:
# 头部导入
from django.utils.encoding import force_text
# 报错的位置更改
q...
0x01 报错
表单提交的时候报错提示
CSRF token missing or incorrect.*
0x02 处理
模板中添加如下防止csrf代码
{% csrf_token %}
Django的安装
注意安装LTS版本
安装
pip install Django==2.2(卸载django:pip uninstall django)
创建第一个Django项目
命令行创建
django-admin startproject 项目名
PyCharm
File -> new Project -> 左侧选第二项,右侧第一项是路径,第二项是选python版本
在...
0x01接收路径
函数式的路径判断
截取请求路径的扩展功能
0x02 代码
"""
使用socket 搭建一个简单的web服务端
函数进阶版
"""
import time
import socket
sk = socket.socket()
sk.bind(('127.0.0.1', 8080))
sk.listen()
def yingying(url):
data = 'ni fang wen de shi: {}'.format(url)
return bytes(data, encoding='utf8')
...
0x01 需求
功能说明:
监听9090端口
解析html文件
支持http协议
0x02 代码实现
import socket
sk = socket.socket()
sk.bind(("127.0.0.1",9090))
sk.listen()
#sk.accept()
while True:
conn,addr = sk.accept()
data = conn.recv(1024)
print(data)
#http协议输出
...
0x01 server
import select
import socket
sk = socket.socket()
sk.bind(('127.0.0.1',8080))
sk.listen()
del_l = []
rlist = [sk]# 是用来让select帮忙监听的 所有 接口
# select:windows/linux是监听事件有没有数据到来
# poll: linux 也可以做select的工作
# epoll: linux 也可以做类似的工作
while 1:
r,w,x = select.select(rlist,[]...
0x01 服务端
import socket
sk = socket.socket()
sk.setblocking(False)
sk.bind(('127.0.0.1',8080))
sk.listen()
l = []
del_l = []
while 1:
try:
conn,addr = sk.accept()# 如果是阻塞IO模型,在这里程序会一直等待。
l.append(conn)# 将每个请求连接的客户端的conn添加到列表中
except BlockingIOError:
for...
0x01代码
from bs4 import BeautifulSoup
import requests
import time
import re
from multiprocessing import Process
headers = {
'user-agent':'Mozilla/5.0 (Windows NT 6.1; W…) Gecko/20100101 Firefox/61.0'
}
def get_url(url):
res = requests.get(url)
if res.status_code == 200:
...