赞
踩
文件结构:
——app.py
——m_users.py
——external.py
app.py
******
from flask import Flask
from common import external
from m_users import U12
from external import db
import external #导入配置文件
app = Flask(__name__) #Flask初始化
app.config.from_object(external) #初始化配置文件
#初始化数据库连接
db.init_app(app) 新增点
db = SQLAlchemy(app) 弃掉 出错点2
db.create_all() 循环引用 出错点1
改为
#手动创建应用上下文
with app.app_context():
db.create_all() #建立关系映射
@app.route('/')
#定义路由
def hello_world():
return 'Hello World!'
*******
m_users.py
########
from external import db
class U12(db.Model):
__table_args__ = {'extend_existing': True}
__table__ =db.Table('usser1234',db.metadata,db.Column('id',db.String(11), primary_key=True),
db.Column('country', db.String(20), default=None, nullable=False, comment="国家"),
db.Column('name', db.String(20), default=None, nullable=False, comment="用户姓名"),
db.Column('phone', db.String(20), default=None, nullable=False, comment="电话"))
def select(self,u_id):
result = db.session.query(self).filter(self.id == u_id).first()
return 'name:{0}'.format(result.name)
###########
external.py
………………
from flask_sqlalchemy import SQLAlchemy
db = SQLAlchemy()
# 设置mysql数据库
DIALECT = 'mysql'
# 使用pymysql驱动
DRIVER = 'pymysql'
# 账号
USERNAME = 'root'
# 密码
PASSWORD = 'root'
# 数据库服务器所在的IP地址
HOST = '127.0.0.1'
# 端口
PORT = '3308'
# 指定连接的数据库名
DATABASE = 'woni'
# 进行数据库连接的实例化
SQLALCHEMY_DATABASE_URI = "{}+{}://{}:{}@{}:{}/{}?charset = utf8".format(DIALECT, DRIVER,USERNAME,PASSWORD, HOST,PORT,DATABASE)
或
SQLALCHEMY_DATABASE_URI = "mysql+pymysql://root:root@localhost:3308/woni?charset=UTF8"
# 关闭动态跟踪
SQLALCHEMY_TRACK_MODIFICATIONS = False
# 查询时会显示原始SQL语句
SQLALCHEMY_ECHO = True
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。