app.py 数据库采用Flaks-SQLAlchemy进行操作
import time
from flask import Flask, render_template, url_for,request,redirect,flash
from flask_sqlalchemy import SQLAlchemy
import os
import click
app = Flask(__name__)
app.config['SECRET_KEY'] = '20190847'
app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///' + os.path.join(app.root_path, 'data.db')
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False # 关闭对模型修改的监控
db = SQLAlchemy(app)
class User(db.Model):
id = db.Column(db.INTEGER, primary_key=True)
name = db.Column(db.String(100))
class Players(db.Model):
id = db.Column(db.INTEGER, primary_key=True)
playername = db.Column(db.String(30))
position = db.Column(db.String(30))
number = db.Column(db.INTEGER)
@app.cli.command() # 注册为命令
@click.option('--drop', is_flag=True, help='Create after drop.')
# 设置选项
def initdb(drop):
"""Initialize the database."""
if drop: # 判断是否输入了选项
db.drop_all()
db.create_all()
click.echo('数据库初始化成功') # 输出提示信息
@app.cli.command()
def forge():
"""Generate fake data."""
from app import User, Players
# 全局的两个变量移动到这个函数内 初始数据库
username = '东北大学工商管理学院'
players = [
{'playername': 'Messi', 'position': 'GodMan', 'number': 30},
{'playername': '朱文甫', 'position': '右边翼卫(RWB)', 'number': 21},
{'playername': '马尔蒂尼', 'position': '左后卫(LB)', 'number': 3},
{'playername': 'Van dank', 'position': '中后卫(CB)', 'number': 2},
{'playername': 'Ramos', 'position': '中后卫(CB)', 'number': 4},
{'playername': 'Kante', 'position': '防守型后腰(CDM)', 'number': 6},
{'playername': '德布劳内', 'position': '前腰(CAM)', 'number': 17},
{'playername': 'Neymar JR', 'position': '前腰(CAM)', 'number': 11},
{'playername': 'Mambape', 'position': '左边锋(LW)', 'number': 7},
{'playername': 'Haaland', 'position': '中锋(ST)', 'number': 9},
{'playername': '多纳鲁马', 'position': '门将(GK)', 'number': 1},
]