使用flask開發網站後端

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歡迎你們參與

相關文章
相關標籤/搜索