使用flask开发网站后端

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用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欢迎大家参与

 

以上是关于使用flask开发网站后端的主要内容,如果未能解决你的问题,请参考以下文章

基于Flask开发网站 -- 前端Ajax异步上传文件到后台(文末送书)

网站后端_Python+Flask.0003.FLASK快速入门之Hello Word?

flask上传作品之dbm操作包头文创网站开发

Flask模板

后端框架对比:Flask与Django

网站后端_Python+Flask.0005.FLASK调试模式之开启DEBUG与PIN使用?