Flask与Mysql数据库建立连接

该开始学习Flask,接触到数据库方面,记录一点儿笔记,希望有用。

环境:python3.7.7,flask1.1.2

与数据库建立联系,需要在自己的虚拟环境中pip install :flask-script,pymysql,flask-sqlalchemy,flask-imgrate(4个库)

1.Flask-Script扩展提供向Flask插入外部脚本的功能,内置命令shell和runserver,也可以自定义。在Flask工程中,当在app.py文件中创建好app对象后,要用manager来包裹:

#app.py文件
from flask_script import Manager
manager=Manager(app=app)#创建app对象后,用manager包裹
manager.run()#在main函数中,运行程序

2.flask-sqlalchemy提供了SQL工具包及对象关系映射(ORM)工具

#1.在settings.py文件中配置
SQLALCHEMY_DATABASE_URI='mysql+pymysql://root:root@127.0.0.1:3306/flaskday05'#访问的数据库+用的驱动://数据库的用户名:密码@服务器地址:端口号/数据库
SQLALCHEMY_TRACK_MODIFICATIONS=False
SQLALCHEMY_ECHO=True#调试模式
#2.在exts包的__init__.py文件中引入外部工具包
from flask_sqlalchemy import SQLAlchemy
db=SQLAlchemy()#创建了db数据库对象
#3.在总蓝图apps的__init__.py文件中将db对象与app对象关联起来
from exts import db
db.init_app(app=app)

3.flask-migrate是一个为Flask应用处理SQLAlchemy数据库迁移的扩展,使得可以通过Flask的命令行接口或者Flask-Scripts对数据库进行操作。

#在app.py文件中,当创建完app对象之后
from flask_migrate import Migrate, MigrateCommand
migrate=Migrate(app=app,db=db)#建立app影响数据库的映射
manager.add_command('db',MigrateCommand)#将命令交给manager管理

4.在各蓝图中创建模型(类)时,要用到db的model

#在model.py文件中
from exts import db
class User(db.Model):

5.将创建好的模型(自定义的类)导入到app.py文件中

from apps.user.models import User

6.使用terminal运行pytho:

初始化(一个项目只需要初始化一次,用来生成migrations文件夹)python app.py db init

更新版本(每次修改后要运行,用来在versions文件中生成最新的版本py文件)python app.py db migrate

数据库同步(每次修改要运行,用来将最新版本的内容更新到数据库上)python app.py db upgrade

删除时:python app.py db downgrate 并删除版本文件

 

Flask-Bootstrap是一个简化在Flask项目中集成前端开源框架Bootstrap过程的Flask扩展。使用Bootstrap可以快速的创建简洁、美观又功能全面的页面。
pip install flask-bbotstrap
内置的block
{% block title%}首页{%endblock}
{% block navbar%}{%endblock}
{% block content%}{%endblock}
{% block styles%}{%endblock}
{% block scripts%}{%endblock}
{% block head%}{%endblock}
{% block body%}{%endblock}

posted @ 2020-06-20 19:32  Turing-dz  阅读(708)  评论(0编辑  收藏  举报