flask数据模型配置和使用
环境:python3.6,pymysql,flask,flask-alchemy,mysql5.6
1 首先在mysql创建好一个数据库.
2 安装好这几个安装包.
3 设置配置信息,创建一个config.ini
```
[db]
NAME=test # 数据库帐号
PASSWD=test # 数据库密码
IPADDR=192.168.9.224 #连接地址
PORT=3306 # 端口
DATABASE=test # 数据库
```
4 导入配置信息:
```
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import configparser
#--------------------------导入配置-------------------------
cf = configparser.ConfigParser()
cf.read('conf.ini')
NAME =cf.get('db','NAME')
PASSWORD = cf.get('db','PASSWORD')
IPADDR = cf.get('db','IPADDR')
DATABASE = cf.get('db','DATABASE')
app=Flask(__name__)
#pymysql + mysql是这样用.注意是URI,
app.config['SQLALCHEMY_DATABASE_URI']='mysql+pymysql://%s:%s@%s/%s' %(NAME,PASSWORD,IPADDR,DATABASE)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = True
db=SQLAlchemy(app)
#-----------------------------创建模型------------------------
class CreateTb(db.Model):
__tablename__ = 'createtb'
__table_args__ = {
# ‘mysql_engine‘: ‘InnoDB‘, # 指定表的引擎
'mysql_charset': 'utf8' # 指定表的编码格式
}
id =db.Column(db.Integer,primary_key=True,autoincrement=True)
name = db.Column(db.String(30),unique=True)
addr = db.Column(db.String(30),unique=True)
def __init__(self,name,addr):
self.name = name
self.addr = addr
def __repr__(self):
return '<name %r>' %self.name
def db_init():
db.create_all()
db_init()
#-----------------------------编写视图------------------
@app.route('/')
def hello():
return 'hello flask'
if __name__ == '__main__':
app.run()
app.debug = True
#----------------------最后直接运行,然后去数据库查看是否成功创建表,一般没问题.---
```
导入配置文件的第二种方式:
```
### Flask-SQLAlchemy的使用:
1. 初始化和设置数据库配置信息:
* 使用flask_sqlalchemy中的SQLAlchemy进行初始化:
```
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
db = SQLAlchemy(app)
```
2. 设置配置信息:先创建一个`config.py`文件,并在其中中添加以下配置信息:
```
# dialect+driver://username:password@host:port/database -->这是格式
import os
DIALECT = ‘mysql‘
DRIVER = ‘mysqldb‘
USERNAME = ‘root‘
PASSWORD = ‘root‘
HOST = ‘127.0.0.1‘
PORT = ‘3306‘
DATABASE = ‘db_demo1‘
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset=utf8".format(DIALECT,DRIVER,USERNAME,PASSWORD,HOST
,PORT,DATABASE)
SQLALCHEMY_TRACK_MODIFICATIONS = False 注意: 固定格式和变量名
SECRET_KEY = os.urandom(24)
```
3. 在主`app`文件中,添加配置文件:
```
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import config
app = Flask(__name__)
app.config.from_object(config) ### 注意这一句一定要在 db = SQLAlchemy(app) 之前 否则报错
db = SQLAlchemy(app)
@app.route(‘/‘)
def hello_world():
return ‘Hello World!‘
if __name__ == ‘__main__‘:
app.run(debug=True)
```
4. 做测试,看有没有问题:
```