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

  1. 创建虚拟环境

    创建 myflask 文件夹,在此文件夹下安装虚拟环境。

    mkdir myflask

    cd myflask

    py -3 -m venv venv

    venv\Scripts\activate:激活虚拟环境。

  2. 安装 Flaskpip install Flask

  3. 安装 flask-cors 解决浏览器跨域问题pip install flask-cors

  4. 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",
        })
    
  5. 运行 api.py 文件

    set FLASK_APP=api.py #设置文件
    set FLASK_ENV=develpoment #设置文件变动时服务器自动重启
    flask run #启动服务器,默认的地址是:http://127.0.0.1:5000
    
  6. 创建 web.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: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

  1. connet(args):连接数据库,并返回连接对象。

    参数:

    host:数据库服务器所在的地址。

    user:数据库用户名。

    password:数据库密码。

    database:要连接的数据库名。

    其他:略

  2. open:数据库是否连接,返回布尔值。

  3. close():关闭数据库连接。

  4. cursor(args):创建一个操作游标,默认使用 Cursor

  5. commit():提交到数据库操作,即更改数据库时需要使用这个方法。

  6. rollback():事务回滚。

参数是 Cursor 的游标对象的方法

  1. close():关闭当前游标。
  2. execute(args):提交 SQL 语句。
  3. fetchall():获取所有行。
  4. fetchmany(num):获取指定行。
  5. fetchone():获取一行。