使用python2和flask開發一個http接口的方法


 
代碼Demo
 1 import flask
 2  from flask import request
 3  from flask import jsonify
 4  import tools
 5  import OP_db
 6  import settings
 7  '''
 8  flask: web框架,可以通過flask提供的裝飾器@server.route()將普通函數轉換為服務
 9  登錄接口,需要傳url、username、passwd
10  '''
11  #創建一個服務,把當前這個python文件當做一個服務
12  server = flask.Flask(__name__)
13  #server.config['JSON_AS_ASCII'] = False
14  
15  # @server.route()可以將普通函數轉變為服務 登錄接口的路徑、請求方式
16  @server.route('/login', methods=['get'])
17  def login():
18   # 獲取通過url請求傳參的數據
19   username = request.values.get('name')
20   # 獲取url請求傳的密碼,明文
21   pwd = request.values.get('pwd')
22   # 判斷用戶名、密碼都不為空,如果不傳用戶名、密碼則username和pwd為None
23   if username and pwd:
24    # 獲取加密后的密碼
25    password = tools.md5_pwd(pwd)
26    #執行sql,如果查詢的username和password不為空,說明數據庫存在admin的賬號
27    sql = 'select name,password from test where name= "%s" and password= "%s";' %(username, password)
28    # 從數據查詢結果后,res返回是元組
29    res = OP_db.getconn(
30     host=settings.mysql_info['host'],
31     user=settings.mysql_info['user'],
32     passwd=settings.mysql_info['pwd'],
33     db=settings.mysql_info['db'],
34     port=settings.mysql_info['port'],
35     sql=sql
36    )
37    if res:  #res的結果不為空,說明找到了username=admin的用戶,且password為加密前的123456
38     resu = {'code': 200, 'message': '登錄成功'}
39     return jsonify(resu) #將字典轉換為json串, json是字符串
40    else:
41     resu = {'code': -1, 'message': '賬號/密碼錯誤'}
42     return jsonify(resu)
43   else:
44    res = {'code': 999, 'message': '必填參數未填寫'}
45    return jsonify(res)
46  
47  if __name__ == '__main__':
48   server.run(debug=True, port=8888, host=0.0.0.0) #指定端口、host,0.0.0.0代表不管幾個網卡,任何ip都可以訪問

WARNING: This is a development server. Do not use it in a production deployment. falsk WSGI

記錄一下這個問題,
   Environment: production
   WARNING: This is a development server. Do not use it in a production deployment.
   Use a production WSGI server instead.
其實就是flask未使用 WSGI 啟動,所以使用wsgi啟動就行了,我找到兩種方式,但不知道怎么比較好壞,但以我的理解,底層都是wsgi,只是封裝庫不同而已。。。
from gevent import pywsgi
 
if __name__ == '__main__':
    server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
    server.serve_forever()
 
 


免責聲明!

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



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