-
python
-
flask
-
smtp服务
-
clone code,安装依赖
sudo pip3 install -r requirments/dev.txt
每次安装或升级程序时 需执行下列指令进行任务部署 建库等操作
$ python3 manage.py deploy # 直接运行程序:
python3 manage.py runserver #查看 http://127.0.0.1:5000/
# 指定程序端口:
python3 manage.py runserver --port xx #查看 http://127.0.0.1:xx/
# 指定公网ip:
python3 manage.py runserver --host 0.0.0.0 #查看 http://a.b.c.d:5000/ a.b.c.d是服务器所在的公网ip
# 运行单元测试
python3 manage.py test记录依赖包及其版本号(安装或升级后最好更新这个文件):
pip3 freeze > requirments.txt
Web REST架构 api服务:
http --json --auth 123@abc.com:123 GET http://127.0.0.1:5000/api/v1.0/posts/获取所有文章json格式http --json --auth : GET http://127.0.0.1:5000/api/v1.0/posts/匿名访问http --json --auth 123@abc.com:123 GET http://127.0.0.1:5000/api/v1.0/token获取当前用户认证tokenhttp --json --auth token: GET http://127.0.0.1:5000/api/v1.0/posts/使用上一步获取的token访问
数据库相关操作(命令行模式下):
- 进入命令行:
python3 manage.py shell - 创建数据库:
db.create_all()若数据库已存在则不会产生任何操作 - 删除数据库:
db.drop_all()删除已存在的数据库 - 查找所有行:
tablename.query.all()tablename为具体表名 - 按条件查找:
tablename.query.filter_by(attr=val)查找tablename表中属性attr值为val的值 - 按条件查找:
tablename.query.filter_by(attr=val).first()直接查找是列表 first()取出第一个 - 将变动添加:
db.session.add(obj)类似git的add - 将变动提交:
db.session.commit()类似git的commit 但不需要-m 指定 - 回滚操作:
db.session.rollback()回滚 - 数据库迁移:
- (1)创建迁移仓库:
python3 manage.py db init只需第一次创建迁移仓库时调用 - (2)创建迁移脚本:
python3 manage.py db migrate -m ""每次数据库变动迁移时调用 -m 指定信息 - (3)开始执行迁移:
python3 manage.py db upgrade迁移
- (1)创建迁移仓库:
需设置的环境变量:
(必选):
MAIL_USERNAME: smtp服务器账号
MAIL_PASSOWRD: smtp服务器密码
FLASKY_ADMIN: 管理员邮箱(注册时自动成为管理员, 也可以通过shell设置role)
(可选):
SECRET_KEY: 加密字符串
DEV_DATABASE_URL: 开发环境数据库位置
TEST_DATABASE_URL: 测试环境数据库位置
DATABASE_URL: 发布环境数据库位置
u 为要操作的User对象 数据库相关操作需要将变动添加提交才能起效 或等程序运行结束SQLAlchemy会自动添加 下次运行即可起效
- 查找指定用户:
u = User.query.filter_by(email=email).first()此处使用email查找可以换为username等 - 设置用户为已认证:
u.confirmed = True - 设置用户管理员权限:
u.role = Role.query.filter_by(name='Administrator').first() - 添加大量用户:
User.generate_fake(100)# 生成100个用户 - 添加大量文章:
Post.generate_fake(100)# 生成100篇文章 - 所有人关注自己:
User.all_add_self_follows() - 自己关注自己:
u.add_self_follows() - 指定人关注自己:
User.add_user_self_follows(username)