Python 工具包
吴心役
2022-12-04
WSGI
需要运行 api.py
文件,启动一个服务器,然后监听请求。
api.py
文件
from wsgiref.simple_server import make_server
def application(environ, star_response):
response_headers = [ #设置响应头
('Content-Type', 'application/json;charset=urf-8'),
('Access-Control-Allow-Origin', '*'), #允许跨域
('Access-Control-Allow-Methods', 'GET'),
('Access-Control-Allow-Headers', 'x-requested-with,content-type'),
]
status = '200 OK' #响应码
star_response(status, response_headers)
return [b'{hello WSGI!!!}']
if __name__ == "__main__":
url = "127.0.0.1" #设置服务器地址
port = 8081 #设置服务器端口
#设置服务器,并监听 http://127.0.0.1:8081 地址,application 为应答函数
httpd = make_server(url, port, application)
print('启动服务器')
httpd.serve_forever()#启动服务器
HTML
文件
<button onClick="get()">请求数据</button>
<script>
function get(){
var xmlhttp=new XMLHttpRequest()
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4 && xmlhttp.status==200){
console.log(xmlhttp.response)
}
}
xmlhttp.open("GET", "http://127.0.0.1:8081")
xmlhttp.setRequestHeader("content-type","application/json;charset=UTF-8")
xmlhttp.send()
}
</script>
Flask
环境:window
+ Python3.X
-
创建虚拟环境
创建
myflask
文件夹,在此文件夹下安装虚拟环境。mkdir myflask
cd myflask
py -3 -m venv venv
venv\Scripts\activate
:激活虚拟环境。 -
安装 Flask:
pip install Flask
。 -
安装 flask-cors 解决浏览器跨域问题:
pip install flask-cors
-
在
mlflask
目录下创建api.py
文件,作为响应文件from flask import Flask from flask import jsonify from flask_cors import * #解决跨域问题 app = Flask(__name__) CORS(app, resources=r'/*') #解决跨越问题 @app.route('/api') #监听 /api 路由 def login(): print("监听响应 /login 路由") return jsonify({ "age": 20, "name": "aioverg", })
-
运行
api.py
文件set FLASK_APP=api.py #设置文件 set FLASK_ENV=develpoment #设置文件变动时服务器自动重启 flask run #启动服务器,默认的地址是:http://127.0.0.1:5000
-
创建
web.htm
l 文件发起请求<button onClick="get()">请求数据</button> <script> function get(){ var xmlhttp=new XMLHttpRequest() xmlhttp.onreadystatechange=function(){ if(xmlhttp.readyState==4 && xmlhttp.status==200){ console.log(xmlhttp.response) } } xmlhttp.open("GET", "http://127.0.0.1:5000/login") xmlhttp.setRequestHeader("content-type","application/json;charset=UTF-8") xmlhttp.send() } </script>
PyMySQL
连接本地数据库 ex
,用户名 root
,密码 123456
,数据库中有一个名为 people
的数据表。
#引入 pymysql
import pymysql
#连接数据库
db = pymysql.connect("localhost", "root", "123456", "ex")
#查看是否连接,返回 True 则连接正常。
db.open
#创建一个 cursor 游标
cursor = db.cursor()
#SQL 查询语句
sqlCom = "SELECT * FROM people"
#执行查询语句
cursor.execute(sqlCom)
#获取所有行
results = cursor.fetchall()
#打印 people 表中的内容
for row in results:
print(row)
#向 people 表中插入内容
sql = "INSERT INTO people (id, name) VALUES (3, 'bob')"
#将改动提交到数据库,报错的话回滚
try:
# 执行SQL语句
cursor.execute(sql)
# 向数据库提交
db.commit()
except:
# 发生错误时回滚
db.rollback()
#关闭数据库连接
db.close()
常用API:
-
connet(args)
:连接数据库,并返回连接对象。参数:
host
:数据库服务器所在的地址。user
:数据库用户名。password
:数据库密码。database
:要连接的数据库名。其他:略
-
open
:数据库是否连接,返回布尔值。 -
close()
:关闭数据库连接。 -
cursor(args)
:创建一个操作游标,默认使用Cursor
。 -
commit()
:提交到数据库操作,即更改数据库时需要使用这个方法。 -
rollback()
:事务回滚。
参数是 Cursor
的游标对象的方法:
close()
:关闭当前游标。execute(args)
:提交 SQL 语句。fetchall()
:获取所有行。fetchmany(num)
:获取指定行。fetchone()
:获取一行。