flask 接口開發


Flask接口直接操作數據庫

環境准備:

  1. python ,flask, sqllite3(mysql)這里我直接使用sqllite,簡單快捷
  2. jsonify,request 這些包可以直接使用pip install下載
  3. 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')

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM