python框架之Flask(6)-flask-sqlalchemy&flask-script&flask-migrate使用
整合SQLAlchemy
安装
pip3 install flask-sqlalchemy
简单使用
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from sqlalchemy import Integer, String app = Flask(__name__) # 设置连接数据库的URL
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:root@127.0.0.1:3306/test?charset=utf8' # 设置每次请求结束后会自动提交数据库中的改动
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
# 查询时会显示原始SQL语句
app.config['SQLALCHEMY_ECHO'] = True
db = SQLAlchemy(app) class User(db.Model):
__tablename__ = 'user'
id = db.Column(Integer, primary_key=True)
name = db.Column(String(32), index=True, nullable=True) # # 删除表
# db.drop_all()
# # 创建表
# db.create_all()
db.session.add(User(name='李德刚'))
db.session.commit()
print(User.query.all())
和蓝图一起使用
完整示例地址:
flask-script
安装
pip3 install flask-script
使用
修改上述“和蓝图一起使用”示例中的 manage.py 文件:
from flask_script import Manager from flask_sqlalchemy_test import app manager = Manager(app)
if __name__ == '__main__':
manager.run()
命令
然后在当前目录就可以向 Django 一样通过 python manage.py runserver -h [主机地址] -p [端口号] 的方式启动 flask 项目:

不仅如此,还可以通过自定制命令来执行函数,修改 manage.py :
from flask_script import Manager from flask_sqlalchemy_test import app manager = Manager(app) @manager.command
def test_command(num):
print(num) @manager.option('-n', '--name', dest='name')
@manager.option('-a', '--age', dest='age')
def test_option(name, age):
print(name, age) if __name__ == '__main__':
manager.run()

flask-migrate
安装
pip3 install flask-migrate
使用
修改上述“和蓝图一起使用”示例中的 manage.py 如下:
from flask_script import Manager
from flask_migrate import Migrate, MigrateCommand
from flask_sqlalchemy_test import app, db migrate = Migrate(app, db)
manager = Manager(app)
manager.add_command('db', MigrateCommand) if __name__ == '__main__':
manager.run()
命令
$ python manage.py db init # 初始化数据库,会创建一个migations文件夹,并且会在数据库中生成一个alembic_version表
$ python manage.py db migrate # 创建迁移历史
$ python manage.py db upgrade # 更新数据库
python框架之Flask(6)-flask-sqlalchemy&flask-script&flask-migrate使用的更多相关文章
- Flask的插件session、SQLAlchemy、Script、Migrate
一.flask-session 1.为什么要使用flask-session 因为flask默认的session是通过请求上下文放入到Local中的,是存在内存的,而使用flask-session可以更 ...
- Python框架 Flask 项目实战教程
本文目的是为了完成一个项目用到的flask基本知识,例子会逐渐加深.最好对着源码,一步一步走.下载源码,运行pip install -r requirements.txt 建立环境python db_ ...
- python框架之Flask(1)-Flask初使用
Flask是一个基于 Python 开发并且依赖 jinja2 模板和 Werkzeug WSGI 服务的一个微型框架,对于 Werkzeug 本质是 Socket 服务端,其用于接收 http 请求 ...
- python框架之Flask
介绍:Flask是一个使用 Python 编写的轻量级 Web 应用框架.其 WSGI 工具箱采用 Werkzeug ,模板引擎则使用 Jinja2 . WSGl:Web Server Gateway ...
- python框架之Flask(2)-路由和视图&Session
路由和视图 这一波主要是通过看源码加深对 Flask 中路由和视图的了解,可以先回顾一下装饰器的知识:[装饰器函数与进阶] 路由设置的两种方式 # 示例代码 from flask import Fla ...
- python框架之Flask(3)-Blueprint(蓝图)
蓝图 用途 给开发者提供清晰的目录结构. 使用 目录结构 1.创建项目. 2.在项目目录下创建与项目名同名文件夹. 3.在 test_prj 文件夹下创建 __init__.py 文件,并在其中实例化 ...
- Flask 中的 SQLAlchemy 使用教程
Flask 是一个 python web micro framework.所谓微框架,主要是 flask 简洁与轻巧,自定义程度高.相比 django 更加轻量级. 之前一直折腾 django,得益于 ...
- 14、Flask实战第14天:Flask使用SQLAlchemy
flask-sqlalchemy使用详解 之前我们用到的SQLAchemy是可以单独使用的,不需要用到Flask 如果我们在Flask框架中使用SQLAchemy,可以使用flask_sqlalche ...
- flask连接数据库mysql+SQLAlchemy
使用flask框架链接2种数据库 ----------db.py # -*- coding: utf-8 -*- # Flask hello world from flask import Flask ...
- python 全栈开发,Day120(路由系统, 实例化Flask的参数, 蓝图(BluePrint), before_request after_request)
昨日内容回顾 1.Flask: from flask import Flask app = Flask(__name__) # 从源码中可以看出,Flask集成的run方法是由werkzeug中的ru ...
随机推荐
- Python Every Class Needs a __repr__
一.思考 当我们在Python中定义一个类的时候,如果我们通过print打印这个类的实例化对象,或者我们直接输入这个类实例化对象会返回怎么样的结果,如下代码: >>> class P ...
- Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 讯飞科大 语音云.docx \Atitit 代码托管与虚拟主机.docx \Atitit 企业文化 每日心灵 鸡汤 值班 发布.docx \Atitit 几大研发体系对比 Stage-Gat
Atitit s2018.2 s2 doc list on home ntpc.docx \Atiitt uke制度体系 法律 法规 规章 条例 国王诏书.docx \Atiitt 手写文字识别 ...
- springmvc(五) 数据回显与自定义异常处理器
这章讲解一下springmvc的数据回显和自定义异常处理器的使用,两个都很简单 --WH 一.数据回显技术 Springmvc默认支持对pojo类型的数据回显,默认不支持简单类型的数据回显 1.1.什 ...
- 如何免费的将本地Web服务映射到外网
链接地址:https://hongmaju.github.io/2018/05/13/ngrok%E5%B0%86%E6%9C%AC%E5%9C%B0Web%E6%9C%8D%E5%8A%A1%E6% ...
- WWDC 17: 开发者的最初观感
WWDC 17: 开发者的最初观感 前言 每年的 WWDC 都是 iOS 开发者集体高潮的时刻.第一天的 WWDC 带来了全新的 iOS 11.MacOS.tvOS 和 watchOS,革命性的 AR ...
- springMVC 返回时间格式转换
<mvc:annotation-driven> <mvc:message-converters> <bean class="org.springframewor ...
- 【转】WPF自定义控件与样式(13)-自定义窗体Window & 自适应内容大小消息框MessageBox
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: 自定义Window窗体样式: 基于自定义窗体实现自定义MessageB ...
- 【静默】Oracle各类响应文件何在?
[静默]Oracle各类响应文件何在? --root用户下执行: find -name *.rsp / 1.创建数据库的响应文件:$ORACLE_HOME/assistants/dbca/dbca. ...
- Transaction rolled back because it has been marked as rollback-only分析解决方法
1. Transaction rolled back because it has been marked as rollback-only事务已回滚,因为它被标记成了只回滚<prop key= ...
- google的Python风格规范
Python风格规范 分号 Tip 不要在行尾加分号, 也不要用分号将两条命令放在同一行. 行长度 Tip 每行不超过80个字符 例外: 长的导入模块语句 注释里的URL 不要使用反斜杠连接行. ...