第一种方式:浏览器地址输入方式
from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
import os
app=Flask(__name__)
manager=Manager(app)
db=SQLAlchemy(app)
#地址连接
base_dir=os.path.dirname(__file__)
database_uri='sqlite:///'+os.path.join(base_dir,'data.sqlite')
app.config['SQLALCHEMY_DATABASE_URI']=database_uri
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
class Grade(db.Model):
__tablename__='grade'
id=db.Column(db.Integer,primary_key=True)
gname=db.Column(db.Integer,unique=True)
girl_number=db.Column(db.BOOLEAN)
boy_number=db.Column(db.BOOLEAN)
@app.route('/create/')
def create():
db.create_all()
return '数据表已创建'
@app.route('/drop/')
def drop():
db.drop_all()
return '数据表已删除'
@app.route('/')
def index():
return 'OK'
if __name__=='__main__':
manager.run()
第二种方式:终端代码输入方式
from flask import Flask
from flask_script import Manager,prompt_bool
from flask_sqlalchemy import SQLAlchemy
import os
app=Flask(__name__)
manager=Manager(app)
db=SQLAlchemy(app)
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']=False
#配置数据连接地址
base_dir=os.path.dirname(__file__)
database_uri='sqlite:///'+os.path.join(base_dir,'data.sqlite')
app.config['SQLALCHEMY_DATABASE_URI']=database_uri
class User(db.Model):
id=db.Column(db.Integer,primary_key=True)
name=db.Column(db.String,unique=True)
age=db.Column(db.Integer)
email=db.Column(db.String,unique=True)
@manager.command
def createall():
db.create_all()
return '数据表已创建'
@manager.command
def dropall():
if prompt_bool('你确定要删除数据表么?'):
db.drop_all()
return '数据表已删除'
return '删库有风险,操作需谨慎!
@app.route('/')
def index():
return '终端操作数据表'
if __name__=='__main__':
manager.run()
第三种方式:迁移文件方式
from flask import Flask
from flask_script import Manager
from flask_sqlalchemy import SQLAlchemy
from flask_migrate import Migrate,MigrateCommand
import os
app=Flask(__name__)
manager=Manager(app)
db=SQLAlchemy(app)
migrate=Migrate(app,db)
#将迁移命令添加到终端
manager.add_command('db',MigrateCommand)
base_dir=os.path.dirname(__file__)
database_uri='sqlite:///'+os.path.join(base_dir,'data.sqlite')
app.config['SQLALCHEMY_DATABASE_URI']=database_uri
app.config['SQLALCHEMY_TRACK_MODIFICATIONS']= False
class Course(db.Model):
id = db.Column(db.Integer, primary_key=True)
content=db.Column(db.String,unique=True)
@app.route('/')
def index():
return '数据迁移操作'
if __name__=='__main__':
manager.run()