我正在用Flask编写api,并希望在mysql中收集数据,但是当我发送第一个请求时,我得到了错误并且没有保存在数据库中,对相同URL的第二个请求就可以了,并将数据保存在数据库中。
错误代码: https://imgur.com/a/gE6B4fH
预期结果: https://imgur.com/a/abaM6iO
我正在使用来自docker的mysql:8.0.2、1.0.2版的python flask和python 3.7.1,PyMySQL的0.9.3版
config.py
if(mode == 1){
初始化 .py
class Config:
SQLALCHEMY_DATABASE_URI =
'mysql+pymysql://root:helon2001@127.0.0.1:3306/Restaurant'
SQLALCHEMY_TRACK_MODIFICATIONS = False
models.py
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
from api.config import Config
import pymysql
db = SQLAlchemy()
def create_app(config_class=Config):
app = Flask(__name__)
app.config.from_object(Config)
db.init_app(app)
from api.main import main_bp
app.register_blueprint(main_bp,url_prefix="/api")
return app
run.py
from api import db
class User(db.Model):
__tablename__ = 'users'
id = db.Column(db.Integer, primary_key = True)
username = db.Column(db.String(120), unique = True, nullable = False)
password = db.Column(db.String(120), nullable = False)
def save_to_db(self):
db.session.add(self)
db.session.commit()
routesModels.py
from api import create_app
app = create_app()
if __name__ == "__main__":
app.run(debug=True)
我希望第一个请求没有输出错误,但可以正常输出作为第二个请求。