Flask 是一個用於 Python 的微型網絡開發框架,能夠用於快速的搭建一個小型的網站。javascript
個人搜索引擎:http://www.abelkhan.com 就是基於flask開發前端
一個flask的Hello Worldjava
from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
其中,app = Flask(__name__)建立的app對象就是咱們的網站應用的實例。python
能夠看到,Flask經過@修飾符,app.route實現了對url請求到函數接口的路由。nginx
也就是說,你若是在瀏覽器請求http://url.com/,經過app.route的做用,最終就會調用到hello_world。git
使用flask作文件服務器,和nginx不一樣,flask不能直接提供對文件的路由,github
而是須要用app.route實現對url的路由web
@app.route('/JSONError.js') def file_JSONError(): from io import BytesIO try: return Response(BytesIO(globalv.res_data['JSONError.js']), mimetype='js') except: traceback.print_exc()
並在對應得函數中,返回對應得文件內容。json
flask中的Response,就是對於的http請求中的的Request和Responseflask
包含以下信息:
status 狀態碼,元數據
status_code
只包含 code 的 status
headers
頭,元數據
mimetype
去掉 charset 的 content type,如 application/json
data
body,元數據
咱們經過Response便可返回文件數據
處理AJAX請求,也就是來至javascript的post的請求:
js的請求以下:
table_regchange.onclick=function() { var params = {"sid":sid}; JSONRequest.post("http://abelkhan.com/changecheck", params, function (requestNumber, value, exception){ table_regcheck.innerHTML = value["check"]; }); };
後端的響應代碼:
@app.route('/changecheck', methods=['POST']) def changecheck(): try: from io import BytesIO r = on_get_check(request.get_json()) rsp = Response(BytesIO(json.dumps(r)), mimetype='text/json') return rsp except: traceback.print_exc()
這裏是前端請求更換驗證碼,而後服務器返回新的驗證碼的代碼,
如此便可完成請求-響應的邏輯流程。
開源的搜索引擎:http://www.abelkhan.com/
歡迎你們圍觀!
使用python編寫了後端網絡爬和前端網站
項目地址:http://www.abelkhan.com/
向咱們提出意見:http://www.abelkhan.com/guestbook/
對項目進行捐助:http://www.abelkhan.com/collection/
代碼託管地址以下:https://github.com/qianqians/websearch歡迎你們參與