数据库

应该会写的很慢
关于sql与nosql的选择
建议选择SQL
理由:这书上是这样说的
环境Windows10+pycharm+MySQL
关于MySQL的安装,官网下载即可

使用flask-sqlalchemy管理数据库

1初始化和设置数据库配置信息

    *使用flask_sqlalchemy中的SQLAlchemy进行初始化:(由于在python3中不支持MYSQL_python,这里使用pymysql)
    、、、
from flask_sqlalchemy import SQLAlchemy
import pymysql
pymysql.install_as_MySQLdb()
app = Flask(__name__)
db = SQLAlchemy(app)
    、、、

2设置配置信息:在'config.py'文件中配置如下信息:

    、、、
#!/usr/bin/env python 
# -*- coding:utf-8 -*-
#dialect+driver://username:password@host:post/database
DIALEXT = 'mysql'
DRIVER = 'mysqldb'
RUERNAME = 'root'
PASSWORD = 'root'
HOST = '127.0.0.1'
POST = '3306'
DATABASE = 'db_demo1'

SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALEXT,DRIVER,RUERNAME,
                                             PASSWORD,HOST,POST,DATABASE)
SQLALCHEMY_TRACK_MODIFICAIIONS = False
    、、、

'SQLALCHEMY_DATABASE_URI’和’SQLALCHEMY_TRACK_MODIFICATIONS’是必备的,不然会报错,前者表示数据库链接,后者表示是否要追踪数据库数据的修改。
3.在主app文件中添加配置文件 :

、、、
app = Flask(__name__)
app.config.from_object(config)
db = SQLAlchemy(app)
、、、

4.做测试

、、、


db.create_all()
、、、

关于主app的完全代码

from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
import config

app = Flask(__name__)
app.config.from_object(config)#.from_object表单对象访问
db = SQLAlchemy(app)
pymysql.install_as_MySQLdb()
db.create_all()  #测试配置是否错误

class Role(db.Model):
    __tablename__ = 'roles'
    id = db.Column(db.Integer,primary_key=True,autoincrement=True,unique=True)
    name = db.Column(db.String(64),unique=True)

db.create_all()

@app.route('/')
def hello_world():
    return 'Hello World!'

if __name__ == '__main__':
    app.run()

使用flask-SQLAlchemy创建表与模型的映射

1.模板继承自'db.Model',然后需要映射到表中的属性,必需写成'db.Column'的数据类型
2.数据类型详见狗书P48-P49
3.使用db.create_all()将模板添加到数据库中