一、项目需要的基本库
Flask-SQLAlchemy:SQLAlchemy与Flask的粘合剂
Flask-script:生成命令组件,cmd命令行写入命令运行,例子:python manage.py runserver
-- 增加 runserver 命令
-- 自定义命令
Flask-migrate:数据迁移组件
pipreqs:自动查找项目中使用的组件和模块,版本
-- 命令:pipreqs ./ --encoding=utf8
-- 命令:pip install -r requirements.txt # 安装所有相关依赖
vitualenv:用来建立一个虚拟的python环境,一个专属于项目的python环境。
-- 命令:virtualenv my_project_env # 搭建虚拟环境
-- 命令:virtualenv -p /usr/bin/python2.7 my_project_env # 选择运行环境
-- 命令:source my_project_env/bin/activate # 使用虚拟环境
-- 命令:deactivate # 停止虚拟环境
-- 创建继承系统第三方库的虚拟环境:如果已经安装了一些第三方库在系统的 site-packages 目录中,
希望在新的虚拟环境中也可以使用它们,那么你可以使用 --system-site-packages 选项:
virtualenv --system-site-packages env
虚拟环境集中管理库:
virtualenvwrapper:
鉴于virtualenv不便于对虚拟环境集中管理,所以推荐直接使用virtualenvwrapper。
virtualenvwrapper提供了一系列命令使得和虚拟环境工作变得便利,它把你所有的虚拟环境都放在一个地方。
安装virtualenvwrapper(确保virtualenv已安装)
pip install virtualenvwrapper
pip install virtualenvwrapper-win # Windows使用该命令
安装完成后,在 vim ~/.bashrc 以下内容添加到环境变量中:
export WORKON_HOME=~/Envs
source /usr/local/python3/bin/virtualenvwrapper.sh
第一行:virtualenvwrapper存放虚拟环境目录
第二行:virtualenvwrapper.sh会安装到/usr/local/路径下的python bin目录下。
配置完成运行:source ~/.bashrc # 读入配置文件,立即生效
virtualenvwrapper基本使用:
1.创建虚拟环境 mkvirtualenv
mkvirtualenv venv
这样会在WORKON_HOME变量指定的目录下新建名为venv的虚拟环境。
若想指定python版本,可通过"--python"指定python解释器
mkvirtualenv --python=/usr/local/python3.5.3/bin/python venv
2. 基本命令
查看当前的虚拟环境目录:
[root@localhost ~]# workon
py2
py3
切换到虚拟环境:
[root@localhost ~]# workon py3
(py3) [root@localhost ~]#
退出虚拟环境:
(py3) [root@localhost ~]# deactivate
[root@localhost ~]#
删除虚拟环境:
rmvirtualenv venv
3. 其他命令:
lsvirtualenv #列举所有的环境。
cdvirtualenv #导航到当前激活的虚拟环境的目录中,比如说这样您就能够浏览它的 site-packages。
cdsitepackages # 和上面的类似,但是是直接进入到 site-packages 目录中。
lssitepackages #显示 site-packages 目录中的内容。
Linux环境下python虚拟环境virtualenv安装和使用
二、Flask-SQLAlchemy 使用
SQLAlchemy操作数据库的ORM组件
2.1、Flask-SQLAlchemy 配置 Flask settings
class DBConfig(object):
SQLALCHEMY_DATABASE_URI= 'mysql+pymysql://root:root@127.0.0.1:3306/flask_sql?charset=utf8'
SQLALCHEMY_BINDS=
SQLALCHEMY_NATIVE_UNICODE=
SQLALCHEMY_ECHO=
SQLALCHEMY_RECORD_QUERIES=
SQLALCHEMY_POOL_SIZE= 10
SQLALCHEMY_POOL_TIMEOUT= 30
SQLALCHEMY_POOL_RECYCLE=
SQLALCHEMY_MAX_OVERFLOW= 5
SQLALCHEMY_COMMIT_ON_TEARDOWN=
SQLALCHEMY_TRACK_MODIFICATIONS=
2.2、Flask-SQLAlchemy 创建数据表
# 创建的步骤
1、__init__.py 导入 Flask-SQLAlchemy 并实例化 Flask-SQLAlchemy
PS:必须在蓝图导入的上面;
必须导入 from .models import * 。
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
导入 Flask 蓝图
from .models import *
2、初始化 app 因为要读取app中的配置文件
db.init_app(app)
3、在配置文件中写入配置
4、创建 models.py (创建数据表)
app 文件夹下创建 models.py 文件
5、生成表(使用app上下文)
from flask05 import db,create_app
app = create_app()
app_ctx = app.app_context() # app_ctx = app/g
with app_ctx: # with 自动调用 __enter__,通过 LocalStack 放入 local 中
db.create_all() # 调用 LocalStack 放入 Local 中获取app,再去app中获取配置
6、基于 ORM 对数据库进行操作
引入:
from app 文件夹 import db
from app 文件夹 import models
db.session.add() # 给表中添加数据
db.session.remove() # 关闭数据连接
2.3、常用的 SQLAlchemy 语句
2.3.1、常用的SQLAlchemy查询过滤器
过滤器 |
说明 |
filter() |
把过滤器添加到原查询上,返回一个新查询 |
filter_by() |
把等值过滤器添加到原查询上,返回一个新查询 |
limit |
使用指定的值限定原查询返回的结果 |
offset() |
偏移原查询返回的结果,返回一个新查询 |
order_by() |
根据指定条件对原查询结果进行排序,返回一个新查询 |
group_by() |
根据指定条件对原查询结果进行分组,返回一个新查询 |
2.3.2、常用的SQLAlchemy查询执行器
方法 |
说明 |
all() |
以列表形式返回查询的所有结果 |
first() |
返回查询的第一个结果,如果未查到,返回None |
first_or_404() |
返回查询的第一个结果,如果未查到,返回404 |
g |