模型的框架 - ORM(对象关系映射)
ORM框架的三大特征:
1.数据表到编程类的映射
2.数据类型的映射
3.数据表的关系映射到编程类的关系映射
ORM的优点:
封装了数据库中所有的操作,大大的提高了开发效率。可以省略庞大的数据访问层,即便不用SQL编码也能完成对数据的CRUD操作
Python中的ORM框架:SQLAlchemy
Flask中的ORM框架:SQLAlchemy,但是需要安装Flask-SQLAlchemy插件包
创建数据库:
create database 数据库名 default charset utf8 collate utf8_general_ci;
collate utf8_general_ci:数据库的校对规则
collate=utf8_bin
utf8_bin:区分大小写
utf8_general_cs:大小写敏感;case insensitive的缩写
utf8_general_ci:大小写不敏感。case insensitive的缩写,意思是大小写不敏感
在Flask中配置数据库
1.通过app(Flask应用实例)构建配置信息
app.config['SQLALCHEMY_DATABASE_URI']="mysql+pymysql://用户名:密码@主机:端口/数据库名"
例如:
`app.config['SQLALCHEMY_DATABASE_URI']="mysql+pymysq://root:123456@localhost:3306/flask"`
2.创建数据库实例
from flask_sqlalchemy import SQLALchemy
db = SQLAlchemy(app)
模型类的映射管理
终端运行
1.python3 run.py db init
2.python3 run.py db migrate
3.python3 run.py db upgrade
设置自动提交
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN']=True
哈希加密的导包
from werkzeug.security import generate_password_hash,check_password_hash
通用配置
app = Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI'] = "mysql+pymysql://root:123456@localhost:3306/flaskLogin"
app.config['SQLALCHEMY_COMMIT_ON_TEARDOWN'] = True
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
app.config['DEBUG'] = True
app.config['SECRET_KEY'] = 'you guess'
db = SQLAlchemy(app)
manager = Manager(app)
migrate = Migrate(app, db)
manager.add_command('db', MigrateCommand)
if __name__ == "__main__":
manager.run()
待续。。。。。