1、使用web 框架优点:
稳定性和可扩展性强,降低开发难度,提高开发效率
2、Flask
是轻量级web开发框架(只有两个核心部分:WSGI工具箱采用Werkzeug(路由模块),模版引擎使用Jinja2 ),最灵活的框架之一
扩展列表: http://flask.pocoo.org/extensions/
文档:http://docs.jinkan.org/docs/flask/
http://flask.pocoo.org/docs/flask
3、Django 与Flask区别
Flask需要引用外表扩展
4、虚拟环境安装
1)查看是否安装虚拟环境
$ virtualenv --version
2)安装虚拟环境
$ sudo pip3 install virtualenv
$ sudo pip3 install virtualenvwrapper
3)创建虚拟环境(需要连网)
$ mkvirtualenv Flask_py
4)如果提升找不到mkvirtualenv 命令,配置环境变量
# 1.创建目录用来存放虚拟环境
mkdir $HOME/.virtualenvs
#2、打开vi ~/.bashrc或者 ~/.zshrc文件,并添加如下
export WORKON_HOME = $HOME/.virtualenvs
source /usr/local/bin/virtualwrapper.sh
VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3 // 配置python3.0环境
#3、运行
source ~/.bashrc
source ~/.zshrc
5)进入虚拟环境
$ workon Flask_py
6)退出虚拟环境
$ deactivate Flask_py
5 、安装Flask
指定Flask版本安装
$ pip3 install flask==0.10.1
pip3 freeze > requirements.txt
Mac系统:
$ easy_install flask==0.10.1
在ipython中测试安装是否成功
$ free flask import Flask
6、requirements文件
便于迁移,记录所有依赖包及精确版本号,以便在新环境中进行部署操作( 发布到服务器)。
在虚拟环境使用以下命令将当前虚拟环境中的依赖包以版本号生产至文件中:
终端输入$ pip3 freeze >requirements.txt # 到处环境
$ pip3 list # 查看当前所有的环境
$ pip3 install -r requirements.txt # 拷贝requirements.txt文件到项目,再安装环境
7、
8、
9、Jinja2中
注释:{# #}
传入的数组时,可以使用{{list.2}} 或{{ list[2]}}取第3个值
传入的字典时,可以使用{{dict.key}} 或{{dict[key]}}
定义控制代码块:{% %}
for循环:
{% for num in list %}
{{num}} <br>
{% endfor %}
if条件判断:
{% if num > 3 %}
{{num}} <br>
{% endif %}
10.Jinja2过滤器
链式调用:{{ url_str | upper | reverse}}
变大写:{{ url_str | upper }}
title:把值中每个单词的首字母转成大写
lower:转小写
reverse:反转
format格式化输出 : {{ ‘%s is %d’ | format(‘name’, 17) }}
safe禁用转义:{{ ‘<em>hello</em>’ | safe}}
变量首字母大写,其余小写:{{ ‘hello’ | capitalize }}
渲染之前把值中所有的HTML标签都删掉:{{‘<em>hello</em>’ | striptags}}
truncate字符串截断:{{‘hello every one’ | truncate(9) }}
列表
取第一个值:{{ list | first }}
最后一个值:last
列表长度:length
求和:sum
排序:sort
语句块过滤:
{% filter upper %}
{% endfilter %}
11、flask-WTF
安装flask-wtf: pip3 install flask-wtf
12.Flask-SQLAlchemy扩展
安装fask-sqlalchemy
pip3 install flask-sqlalchemy
如果连接的是mysql数据库,需要安装mysqldb
pip3 install flask-mysqldb
Flask 的数据库设置:
app.config[‘SQLALCHEMY_DATABASE_URI’] = ‘mysql://root:[email protected]:3306/test'
其他设置:
app.config[‘SQLALCHEMY_TRACK_MODIFICATIONS’] = False #动态追踪修改设置
app.config[‘SQLALCHEMY_ECHO’] = True #查询时会显示原始SQL
# mysql -h localhost -u root -p
# 输入密码
> create database test charset=utf8; #创建数据库
> show databases;
> use databases;
> show tables;
> select * from users;
> set password=password(“banyantoro"); #修改密码
> flush privileges; # 刷新权限
> help contents
> select Host,user,password from mysql.user \G; #查询用户名
> create database test; #创建数据库
> exit;
角色表 roles
id |
|||
name |
|||
用户表 users
id |
|||
name |
|||
role_id |
|||
role |
From Flask_Demo03 import *
User.query.all() # 查询所有用户
User.query.count() # 查询用户数
User.query.first() # 第一个数据
# 查询ID为4的用户
User.query.get(4)
User.query.filter_by(id=4).first()
User.query.filter(User.id==4).first()
User.query.filter_by(id=4).first()