python服务整理

一、flask使用

1.声明一个服务

#-*- coding: utf-8 -*-
from flask import Flask,jsonify, request # flask包

app = Flask(__name__)

# 跨域
from flask_cors import CORS
CORS(app, supports_credentials=True)

@app.route("/table/createTable", methods=['POST', 'GET'])
def createTable():
	# todo
	return
	
if __name__ == '__main__':
    app.run(host='0.0.0.0', port=5000, threaded=True)

2. response

3. request

属性

  • method:请求方法(DELETE、OPTION、GET、POST等)
  • path :请求地址

方法

# 获取指定header
request.headers.get('KEY')
# 

# 添加属性,使用时 request.key
request.__setattr__(key, val)

# 获取接收参数
request.get_data() 		# json形式
code = data.decode("utf-8")
json_data = json.loads(code)

request.args 	# GET参数
request.args.get(key)

request.form 	# POST参数
request.form.get(key)
# 
request.
# 
request.

4. 装饰器

  • before_first_request 在第一次尝试链接时
  • before_request :在请求收到之前绑定一个函数做一些事情。 可用于信息验证。
  • after_request: 每一个请求之后绑定一个函数,如果请求没有异常。
  • teardown_request: 每一个请求之后绑定一个函数,即使遇到了异常。可用于异常处理。
# 请求前拦截
@app.before_request
def before_request():
    pass #or return

5. 返回状态码与错误信息

二、操作mysql

1. pymysql

  • 基本操作
    http://www.runoob.com/python3/python3-mysql.html
# 获取游标,pymysql.cursors.DictCursor 返回字典类型
	cursor = conn.cursor(cursor=pymysql.cursors.DictCursor)

# 执行语句

    try:
    	# 生成sql
        sql = "SELECT user,pwd FROM User WHERE user='%s' AND pwd='%s'" % ('name','psd')
         cursor.execute(sql)

        # 得到所有结果
        data = cursor.fetchall()
        # 得到一个结果
        data = cursor.fetchone()
        # 每次得到一个
        data = cursor.fetchmany()
        
		# 获取执行语句
		sql = cursor.mogrify(sql,  ['name','psd'])
		sql = cursor.query #最后一次执行语句
			
		# 提交
		conn.commit();
    except Exception as e:
        import traceback
        traceback.print_exc()
        conn.rollback()  # 事务回滚
        print('事务处理失败', e)
    finally:
        cursor.close()
        conn.close()
  • 防止sql注入
# 1. 自动转义 防止sql注入
  sql = "SELECT user,pwd FROM User WHERE user='%s' AND pwd='%s'"
  cursor.execute(sql,  ['name','psd'])
# 2. 调用存储过程  call proc_name('name','password')
  cursor.callproc('proc_name', args=('name','password'))  

2. 连接池 PooledDB

import pymysql
from DBUtils.PooledDB import PooledDB

cur = pymysql.cursors.DictCursor

pool = PooledDB(pymysql,
                5,                      #最少连接数
                host='192.168.110.129',
                user='admin',
                passwd='123456',
                db='lu_dashboard',
                port=3306,
                setsession=['SET AUTOCOMMIT = 1'] #setsession=['SET AUTOCOMMIT = 1']是用来设置线程池是否打开自动更新的配置,0为False,1为True
                )

def getConn():
    conn = pool.connection()  # 以后每次需要数据库连接就是用connection()函数获取连接就好了
    return conn
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值