今天研究了flask与mysql数据库的操作,没有使用sqlalchemy,使用了mysql的pymysql数据库操作的第三方类库
先来一波后台代码
1 # -*- coding: utf-8 -*- 2 from flask import Flask, jsonify, request 3 import json 4 from flask_cors import * 5 import pymysql 6 7 app = Flask(__name__) 8 9 import contextlib 10 #定义上下文管理器,连接后自动关闭连接 11 @contextlib.contextmanager 12 def mysql(host='192.168.0.122', port=3306, user='root', passwd='我的数据库密码', db='text1',charset='utf8'): 13 conn = pymysql.connect(host=host, port=port, user=user, passwd=passwd, db=db, charset=charset) 14 cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) 15 try: 16 yield cursor 17 finally: 18 conn.commit() 19 cursor.close() 20 conn.close() 21 22 @app.route('/aaa', methods=['GET','POST']) 23 @cross_origin() 24 def aaa(): 25 data= request.args.get("data")#获取前台json数据 26 temp = json.loads(data)#将json转为字典 27 id=temp['id']#获取相应的值 28 with mysql() as cursor: 29 print(cursor) 30 row_count = cursor.execute("select * from users where id=%s", (id)) 31 row_1 = cursor.fetchone() 32 return "successCallback"+"("+json.dumps(row_1)+")" 33 34 conn.commit() 35 cursor.close() 36 conn.close() 37 38 if __name__ == "__main__": 39 app.run( 40 host = '0.0.0.0', 41 port = 7777, 42 debug = True 43 )
上面是后台 后台的坑主要是接收前台数据解析的问题
data= request.args.get("data")#获取前台json数据
temp = json.loads(data)#将json转为字典
id=temp['id']#获取相应的值
注释说的很明白
1 <script> 2 $('#search').click(function () { 3 var data = { 4 data: JSON.stringify({"id": 1}) 5 } 6 $.ajax({ 7 type: 'GET', 8 url: 'http://192.168.0.132:7777/aaa', 9 dataType: 'jsonp', //希望服务器返回json格式的数据 10 data:data, 11 jsonp: "callback", 12 jsonpCallback: "successCallback", 13 success: function (data) { 14 console.log(data); 15 } 16 17 }); 18 }); 19 </script>
前台代码中将获取的数据拼成json
没有最好,只有更好,付出不亚于任何人的努力!加油!