Flask 是一个用于 Python 的微型网络开发框架,可以用于快速的搭建一个小型的网站。

一个flask的Hello World

from flask importFlask

app= Flask(__name__)

@app.route('/')defhello_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')deffile_JSONError():from io importBytesIOtry: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.οnclick=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'])defchangecheck():try:from io importBytesIO

r=on_get_check(request.get_json())

rsp= Response(BytesIO(json.dumps(r)), mimetype='text/json')returnrspexcept:

traceback.print_exc()

这里是前端请求更换验证码,然后服务器返回新的验证码的代码,

如此即可完成请求-响应的逻辑流程。

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐