Flask是一个使用 Python 编写的轻量级 Web 应用框架,对比与Django框架呢,他的灵活度就很高了,可以自己一些设计代码框架。
比较适合一些,分层比较少,逻辑不怎么复杂的web项目
pip安装
pip install flask -i https://pypi.tuna.tsinghua.edu.cn/simple
简单实例
复制代码
from flask import Flask
实例化flask对象
app = Flask(name)
第一种路由设置方法(推荐)
@app.route('/hello')
@app.route('/hello/')
def hello():
return "Hello World!"
第二种路由设置方法
app.add_url_rule('/hello', view_func=hello)
app.run()
打开flask的调试模式,避免每次改动都要重新启动服务
app.run(debug=True)
这里需要注意,开启调试模式后,ip地址只能为127.0.0.1或localhost访问,无法通过外网或者局域网访问
host可以设置为本地ip地址,也可以设置为 0.0.0.0 接受外网的访问
app.run(host= '0.0.0.0',debug=True)
port可以指定端口
app.run(host= '0.0.0.0', debug=True, port=5000)
复制代码
需要注意:
函数路由设置为@app.route('/hello/'),意味着如果访问http://127.0.0.1:5000/hello网页会重定向为http://127.0.0.1:5000/hello/,即flask通过这种方式可以同时兼容http://127.0.0.1:5000/hello和http://127.0.0.1:5000/hello/
简单实战:通过flask接口返回json对象
复制代码
from flask import Flask, make_response, jsonify
from datetime import datetime
实例化flask对象
app = Flask(name)
第一种通过接口返回json对象的方法
@app.route('/hello2/')
def hello2():
# headers = {
# 'Content-Type': 'text/html',
# }
headers = {
'Content-Type': 'application/json',
}
response = {
'status': 'success',
'message': 'Data received',
'data': {
'content': 'Hello World2!',
'monitortime': datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
}
result = make_response(jsonify(response), 200)
result.headers = headers
return result
[kod.lhdywydc.com)
[kod.cfdprlord.com)
[kod.spycyy.com)
[kod.tchxzg.com)
[kod.oycgroup.com)
[kod.feynew.com)
[kod.sj4321.com)
[kod.mujuyc.com)
第二种通过接口返回json对象的方法(推荐)
@app.route('/hello3/')
def hello3():
# headers = {
# 'Content-Type': 'text/html',
# }
headers = {
'Content-Type': 'application/json',
}
response = {
'status': 'success',
'message': 'Data received',
'data': {
'content': 'Hello World3!',
'monitortime': datetime.now().strftime("%Y-%m-%d %H:%M:%S")
}
}
return jsonify(response), 200, headers
生产环境 通常使用nginx + uwsgi 部署
因此在生产环境下,fisher项目文件不再作为入口文件,而是uwsgi的模块文件,只会通过uwsgi启动web服务,而不是flask内置的web服务
if name == 'main':
app.run(host= '0.0.0.0', debug=True, port=5000)
复制代码