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}