Flask的安装和入门:配置、路由、转换器、获取请求数据、重定向和报错等
前文,查看flask中文文档: http://docs.jinkan.org/docs/flask/quickstart.html
环境:python3.5,Flask1.0.3
Flask和Django的区别
-
Django原理是客户端发送请求-nginx–uwsgi–中间件–url路由–view视图函数–orm–拿到数据返回到view–将数据传到模板—中间件–uwsgi—nginx–前端渲染
-
Flask当客户端想要获取资源时,通过浏览器发起HTTP请求,此时,web服务器使用一种名为web服务器网关接口的WSGI协议,把来自客户端的请求都交给Flask程序实例,Flask使用werkzeug来做路由分发,根据每个URL请求找到具体的视图函数,获取数据后,把数据传入HTML模板文件中,jinja2模板引擎负责渲染HTTP响应数据,然后由Flask返回响应数据给浏览器
安装Flask
我们使用虚拟环境运行flask,如果没有虚拟环境就安装虚拟环境:
- sudo pip install virtualenv
- 虚拟环境可以搭建独立的python运行环境, 使得单个项目的运行环境与其它项目互不影响.
- 有的话直接创建一个虚拟环境:
- mkvirtualenv flask_py3 -p python3
然后pip install Flask直接安装Flask
pip list查看安装了哪些东西:
Package Version
------------- -------
Click 7.0
Flask 1.0.3
itsdangerous 1.1.0
Jinja2 2.10.1
MarkupSafe 1.1.1
pip 19.1.1
pkg-resources 0.0.0
setuptools 41.0.1
Werkzeug 0.15.4
wheel 0.33.4
开始一个flask应用
可以直接创建一个py文件或者开启一个project,选择对应的虚拟环境和python版本以及项目路径,然后创建会自动生成
这里可以使用自己写:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
app.run()
把它保存为 hello.py (或是类似的),然后用 Python 解释器来运行。
$ python hello.py
- Running on http://127.0.0.1:5000/
现在访问 http://127.0.0.1:5000/ ,你会看见 Hello World 问候。
那么,这段代码做了什么?
- 首先,我们导入了 Flask 类。这个类的实例将会是我们的 WSGI 应用程序。
- 接下来,我们创建一个该类的实例,第一个参数是应用模块或者包的名称。 如果你使用单一的模块(如本例),你应该使用 name,因为模块的名称将会因其作为单独应用启动还是作为模块导入而有不同( 也即是 ‘main’ 或实际的导入名)。这是必须的,Flask 才知道到哪去找模板、静态文件等等。详情见 Flask 的文档。
- 然后,我们使用 route() 装饰器告诉 Flask 什么样的URL 能触发我们的函数。
- 这个函数的名字也在生成 URL 时被特定的函数采用,这个函数返回我们想要显示在用户浏览器中的信息。
- 最后我们用 run() 函数来让应用运行在本地服务器上。 其中 if name == ‘main’:确保服务器只会在该脚本被 Python 解释器直接执行的时候才会运行,而不是作为模块导入的时候。
- Ctrl+C退出
配置
1.直接在app.run方法里面写
2.写成类,然后app.config.from_object(MyConfig)加载:
# 写一个配置类
class MyConfig(object):
DEBUG = True
PORT = 6000
3.从文件导入配置,创建一个config.ini配置文件里面写配置内容,然后设置即可:
- app.config.from_pyfile(‘config.ini’)
4.还有其他的自己研究