0x01 函数代码
'''
/**
* 加密解密子字符串函数
* @param $string
* @param $operation
* @param string $key
* @return bool|mixed|string
*
* $key = md5(md5("gyarmy"));
$token = encrypt($str, 'E', $key);
echo '加密:'.encrypt($str, 'E', $key);
echo '<br />';
echo '解密:'.enc...
上线后出问题的原因 注意 0 和 '0'
<?php
#测试下注释方法
function a($a){
var_dump(empty($a));
var_dump($a==null);
}
//php填坑
a('0');
原因说明
原文
测试案例
<?php
#测试下注释方法
function a($a){
var_dump(empty($a));
var_dump($a==null);
...
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:
...
0x01 PyCharm安装包的方法
引入图片
0x02 命令行安装
无法在pycharm中指定源 关键命令
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple bs4
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple requests
测试有效
项目源码:
MarkDown-for-Emlog
吐槽
后台的编辑器使用起来一直不怎么舒服,今天百度了下,发现有大牛更新了这个博客的编辑器,刚刚在后台换上,试试markdown的语法功能 作者博客:岁寒 很感谢开源分享
源码测试
import os
print("hello world")
echo "HelloWorld";
void main(){
printf("HelloWorld")
}
图片测试
表格测试
...
主要依赖的是 subprocess模块
Server端:
import socket
import subprocess
sk = socket.socket()
sk.bind(("127.0.0.1",10050))
sk.listen()
conn,addr = sk.accept()
while True:
if getattr(conn,'_closed'):
conn, addr = sk.accept()
# 获取接收到的命令
exec_cmd = conn.recv(10...
主要是针对拆包的negal算法和合包的数据获取导致的问题
sever端:
import socket
import json
import struct
sk = socket.socket()
sk.bind(("127.0.0.1",8001))
sk.listen()
conn,addr = sk.accept()
b_len_dic = conn.recv(4)
len_dic = struct.unpack('i',b_len_dic)[0]# 获取到int类型字典的长度,
# unpack得到的是一个元组,要取下标为0的位置
...
0x01 思路
使用tcp协议传输文件
json解析二进制的时候,有问题, 不建议使用,推荐 pickle
0x02 代码
服务器端
# 测试文件服务器
# 实现文件的上传和下载
import socket
import os
import json
import pickle
sk = socket.socket()
sk.bind(("127.0.0.1",10051))
sk.listen()
#等待连接
conn,addr = sk.accept()
while...