Python-flask 拆分
正常写代码的时候,经常代码太长给自己写蒙了
- 正常写代码
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
app = Flask(__name__)
db = SQLAlchemy(app)
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:123456@127.0.0.1/demo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
class Role(db.Model):
__tablename__ = 'roles'
#db.column 表示一个字段
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(16),unique=True)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer,primary_key=True)
#如果不想出现两个张三,就unique=True
name = db.Column(db.String(16),unique=True)
#db.ForeignKey('roles.id')表示是外键
role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))
db.drop_all()
if __name__ == '__main__':
app.run()
- 分开后
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import pymysql
app = Flask(__name__)
db = SQLAlchemy(app)
@app.route('/')
def hello_world():
return 'Hello Worldsscscsdcsdcd!'
import shw
if __name__ == '__main__':
app.run()
from app import db,app
app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql+pymysql://root:shw..19991220@127.0.0.1/demo'
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
class Role(db.Model):
__tablename__ = 'roles'
#db.column 表示一个字段
id = db.Column(db.Integer,primary_key=True)
name = db.Column(db.String(16),unique=True)
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer,primary_key=True)
#如果不想出现两个张三,就unique=True
name = db.Column(db.String(16),unique=True)
#db.ForeignKey('roles.id')表示是外键
role_id = db.Column(db.Integer,db.ForeignKey('roles.id'))
db.drop_all()
db.create_all()
- 这样就很方便看了,只需要在拆开部分从主文件里导入所需模块就可以了。 在这里连接数据库我需要引用的是
db = SQLAlchemy(app)
和app = Flask(__name__)这两块,所以就是db和app
- 然后再在主文件的正确位置上(import)导入进那个文件的文件名即可