使用flask開發網站后端


Flask 是一個用於 Python 的微型網絡開發框架,可以用於快速的搭建一個小型的網站。

我的搜索引擎:http://www.abelkhan.com 就是基於flask開發

 

一個flask的Hello World

from flask import Flask
app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

 

其中,app = Flask(__name__)創建的app對象就是我們的網站應用的實例。

可以看到,Flask通過@修飾符,app.route實現了對url請求到函數接口的路由。

也就是說,你如果在瀏覽器請求http://url.com/,通過app.route的作用,最終就會調用到hello_world。

 

使用flask做文件服務器,和nginx不同,flask不能直接提供對文件的路由,

而是需要用app.route實現對url的路由

@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()

並在對應得函數中,返回對應得文件內容。

 

flask中的Response,就是對於的http請求中的的Request和Response

包含如下信息:

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歡迎大家參與

 


免責聲明!

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



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