一.介绍
Flask是一个python实现的web开发微框架。和Django一样,也是一个基于MVC设计模式的WEB框架。
官方文档: https://flask.palletsprojects.com/en/0.12.x/
中文文档:http://docs.jinkan.org/docs/flask/
Flask 依赖三个外部库:Werkzeug , Jinja2 ,Itsdangerous。
Werkzeug 是一个 WSGI(在 Web 应用和多种服务器之间的标准 Python 接口) 工具集。Jinja2 负责渲染模板。Itsdangerous基于Django的签名模版。
二.安装
安装Flask:
pip install Flask
安装文档:http://docs.jinkan.org/docs/flask/installation.html#installation
安装虚拟环境:
三.MVC设计模式
核心思想:前后端解耦
优点:降低各个模块之间的耦合,方便变更,更容易重构代码,最大程度实现了代码的重用。
一种软件设计典范,用一种业务逻辑,使数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面与用户交互的同时,不需要重新编写业务逻辑。
MVC被独特的发展起来用于映射传统的输入,处理和输出功能在一个逻辑的图形化界面结构中。
四.MVT模式
django和flask都是使用的MVT模式。
本质上与MVC没有什么差别,也是各个组件之间为了保持松耦合关系,只是定义上有点点不同。
Model:负责业务对象与(ORM)数据库的对象
View:负责业务逻辑,并在适当的时候调用Model和Template
Template:负责把页面展示给用户
五.Linux环境变量
linux环境变量:
- 系统级别
- /etc/envirtonment,该方法是修改系统环境配置文件,如
- # 如果/etc/bashrc文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/environment
- vim /etc/profile
- # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
- 手动
source /etc/environment
生效
- /etc/profile,该方法修改系统配置,如:
- # 如果/etc/profile文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/profile
- vim /etc/profile
- # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
- 手动
source /etc/profile
生效
- vim/etc/bashrc,该方法修改系统配置,如:
- # 如果/etc/bashrc文件不可编辑,需要修改为可编辑 chmod -v u+w /etc/bashrc
- vim /etc/bashrc
- # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
- 手动
source /etc/bashrc
生效
- 用户级别
- ~/.bashrc,如:
- vim ~/.bashrc,
- # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin,
- 手动
source ~/.bashrc
生效
- ~/.bash_profile,如:
- vim ~/.bash_profile
- # 在最后一行加上 export PATH=$PATH:/home/uusama/mysql/bin
- 手动
source ~/.bash_profile
生效 - 注意:如果没有
~/.bash_profile
文件,则可以编辑~/.profile
文件或者新建一个
- 临时级别
- 在shell窗口中直接export,如:export PATH=$PATH:/home/uusama/mysql/bin
读取linux环境变量的方法:
-
export
命令显示当前系统定义的所有环境变量 -
echo $PATH
命令输出当前的PATH
环境变量的值
Linux环境变量加载原理解析:
环境变量可以简单的分成用户自定义的环境变量以及系统级别的环境变量。
- 用户级别环境变量定义文件:
~/.bashrc
、~/.profile
(部分系统为:~/.bash_profile
) - 系统级别环境变量定义文件:
/etc/bashrc
、/etc/profile
(部分系统为:/etc/bash_profile
)、/etc/environment
在用户环境变量中:
系统会首先读取~/.bash_profile
(或者~/.profile
)文件,如果没有该文件则读取~/.bash_login
,根据这些文件中内容再去读取~/.bashrc
六.flask环境变量:
flask在起动的时候会检测运行的环境,如果没有配置环境,会默认为production,会发出警告
WARNING: This is a development server. Do not use it in a production deployment.
改变环境变量,shell窗口输入vim ~/.bashrc
最后一行添加
# flask env
export FLASK_ENV='develop'
立即生效: source ~/.bashrc
七.HelloWorld
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello World!'
if __name__ == '__main__':
# run参数:
# debug: 是否开启调试模式,开启后,修改python代码会自动重启
# threaded: 是否开启多线程
# port: 指定服务器端口,默认5000
# host: 指定服务器主机地址, 默认是127.0.0.1,指定为0.0.0.0代表本机所有ip
app.run()
八.生产环境部署
两种方法:
方法一:
from gevent import pywsgi
if __name__ == '__main__':
server = pywsgi.WSGIServer(('0.0.0.0', 5000), app)
server.serve_forever()
方法二:
from wsgiref.simple_server import make_server
if __name__ == '__main__':
server = make_server('', 64570, app)
server.serve_forever()