Flask接口直接操作數據庫
環境准備:
- python ,flask, sqllite3(mysql)這里我直接使用sqllite,簡單快捷
- jsonify,request 這些包可以直接使用pip install下載
- post man 接口調試工具 ,pycharm ----python開發工具
環境的問題就到這里,百度一下各種教程,這里就不羅嗦
步驟一:
新建一個sqllite數據庫:
新建記事本,將記事本名字改為:info.db
使用pycharm打開info.db,創建student表,包含id,name,age。
使用pycharm新建一個flask項目
將info.db移動至webserver項目文件夾下
現在開始代碼部分。
步驟二:
對student表進行插入操作
對student表進行查詢操作
步驟三:
啟動webserver項目:python webserver.py 成功后使用postman進行測試
1.插入數據:
根據路由,使用 127.0.0.1:5000/add 的post方法進行新增操作
需要傳遞的參數為json格式{“id”:”7”,”name”:”3”,”age”:”23”},點擊send即可,然后查看數據庫中是否成功插入數據
數據庫中數據:
2.查詢數據
使用get方式直接在url中輸入地址即可,輸入地址為ID=6的學生信息,返回的數據也是json格式的數據。
源碼如下:
1 # coding=utf-8 2 import sqlite3 3 from flask import Flask, jsonify,request 4 5 # 防止中文亂碼 6 import sys 7 reload(sys) 8 sys.setdefaultencoding("utf-8") 9 10 app = Flask(__name__) 11 12 13 @app.route('/add',methods=['POST']) 14 def add_student(): 15 # 連接數據庫 16 conn = sqlite3.connect('info.db') 17 cur = conn.cursor() 18 19 student = { 20 'id': request.json['id'], 21 'name': request.json['name'], 22 'age': request.json['age'] 23 } 24 25 sql='insert into student values(%s,%s,%s)' %(student['id'],student['name'],student['age']) 26 27 # 執行sql語句 28 cur.execute(sql) 29 conn.commit() 30 print sql 31 32 # 關閉連接 33 conn.close() 34 return u"插入成功" 35 36 37 @app.route('/<int:id>', methods=['GET']) 38 def query(id): 39 40 # 連接數據庫 41 conn = sqlite3.connect('info.db') 42 cur = conn.cursor() 43 # 執行sql語句 44 sql = "select id,name,age from student where id = " + str(id) 45 cur.execute(sql) 46 result = cur.fetchall() 47 print sql 48 # 關閉連接 49 conn.close() 50 return jsonify( 51 { 52 'id': result[0][0], 53 'name': result[0][1], 54 'age': result[0][2], 55 }) 56 57 58 @app.errorhandler(404) 59 def page_not_found(e): 60 res = jsonify({'error': 'not found'}) 61 res.status_code = 404 62 return res 63 64 65 if __name__ == '__main__': 66 app.run(host='0.0.0.0')