Flask轻量级的微服务框架
个人使用,主要用于写接口,或者小规模、低复杂度的项目
路由动态传递
使用同一个视图函数,来显示不同用户的订单信息 <>定义路由的参数,<>内需要起个名字
@app.route('/orders/<order_id>') def get_order_id(order_id): # 需要在视图函数的()内填入参数名,后面的代码才能使用 return 'order_id %s' % order_id # 有的时候需要对路由做访问优化,ID必须是字符型或者浮点型 # <int:order_id> <float:order_id>
过滤器
大写 upper 小写 lower 反转 reverse 循环 {% for num in my_list %} {% num > 3 %} # 数据大于3才能显示 {{ num }} <br> {% endif %} {% endfor %}
使用模块
from flask import Flask, render_template, request, flash, jsonify Flask 扩展,用于开启web服务 app = Flask(__name__) app.secret_key = 'security-guard' # APP启动需要安全密钥 render_template 多用来链接前端页面功能 return render_template('security.html') request 网站请求,在此框架中主要抓取前端的请求动作和get到的form表单信息 request.method == 'POST' request.form.get('username') flash 用于网页div返回的信息 flash(u'已发送请求') jsonify 用作API接口的返回值 json_api = { "200406001": [ "json_api1", "username1", "password1" ], "200406002": [ "json_api2", "username2", "password2" ], "200406003": [ "json_api3", "username3", "password3" ] } return jsonify(json_api)
网站请求框架
from flask import Flask app = Flask(__name__) @app.route('/') def index(): return { "msg": "success", "data": "welcome to use flask." } if __name__ == '__main__': app.run(host='127.0.0.1', port=5000, debug=True)
Linux-Flask 安装环境
使用虚拟环境安装Flask,可以避免包的混乱和版本的冲突
虚拟环境使用 virtualenv 创建,可以查看系统是否安装了virtualenv
virtualenv --version
安装虚拟环境
sudo pip install virtualenv sudo pip install virtualenvwrapper
创建虚拟环境
mkvirtualenv Flask_py
安装完虚拟环境后,需要配置环境变量 mkvirtualenv
1、创建目录来存放虚拟环境 mkdir $HOME/.virtualenvs 2、打开~/.bashrc 添加 export WORKON_HOME/.virtualenvs source /usr/local/bin/virtualenvwrapper.sh 3、运行 source ~/.bashrc
创建虚拟环境 virtualenv Flask_py 进入虚拟环境 source /etc/Flask_py/bin/activate 退出虚拟环境 deactivate
安装Flask
pip install flask==0.10.1 pip freeze > requirements.txt
服务文件详情
bin 主要存放 Python Pip wheel activate flask lib 存放Python的site-packages log 属于自建文件,将不通的操作以json的格式推送到文件下不通的日志文件中 pyvenv.cfg 用来激活虚拟环境的 Flask_py.py 接口启动主程序,内置定义接口、功能、服务启动、日志等操作 static 用于存放此次实验的css文件,用于HTML调用以美化界面 templates 用于存放HTML文件,是导入模块时的render_template链接的前端页面 venv 存放虚拟环境使用的所有依赖
封装服务到系统systemctl,以便随时启停服务
[root@HUAWEI zhoujt]# cat /etc/systemd/system/zjtuser.service Unit] Description=user environment After=syslog.target network.target [Service] User=root Group=root Type=simple Restart=always WorkingDirectory=/etc/Flask_py ExecStart=/etc/Flask_py/bin/python Flask_py.py ExecStop=/bin/kill -15 $MAINPID StandardOutput=syslog StandardError=syslog SyslogFacility=local0 SyslogLevel=info [Install] WantedBy=multi-user.target
随后在服务器访问 127.0.0.1:5000 即可完成。