我按照教程创建了一个简单的数据库支持烧瓶网站。 Here
我成功地遵循了教程,但我正在努力使用这种方法创建多个表。我希望这张桌子叫做Ingredient。 这是我在flask_app.py
中的代码from flask import Flask, redirect, render_template, request, url_for
from flask_sqlalchemy import SQLAlchemy
app = Flask(__name__)
app.config["DEBUG"] = True
SQLALCHEMY_DATABASE_URI = "mysql+mysqlconnector://{username}:
{password}@{hostname}/{databasename}".format(
username="Harrryj",
password="mypassword",
hostname="Harrryj.mysql.pythonanywhere-services.com",
databasename="Harrryj$comments",
)
app.config["SQLALCHEMY_DATABASE_URI"] = SQLALCHEMY_DATABASE_URI
app.config["SQLALCHEMY_POOL_RECYCLE"] = 299
app.config["SQLALCHEMY_TRACK_MODIFICATIONS"] = False
db = SQLAlchemy(app)
class Comment(db.Model):
__tablename__ = "Comment"
id = db.Column(db.Integer, primary_key=True)
content = db.Column(db.String(100))
@app.route("/", methods=["GET", "POST"])
def index():
if request.method == "GET":
return render_template("main_page.html",
comments=Comment.query.all())
comment = Comment(content=request.form["contents"])
db.session.add(comment)
db.session.commit()
return redirect(url_for('index'))
class Ingredient(db.Model):
__tablename__ = "Ingredient"
Ingredient_ID = db.Column(db.Integer, primary_key=True)
Ingredient_Name = db.Column(db.String(100))
Ingredient_Calories = db.Column(db.Integer(100))
当我尝试通过bash控制台在数据库中创建表时,会发生这种情况:
In [6]: from flask_app import db
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-6-5825668f6e50> in <module>()
----> 1 from flask_app import db
/home/Harrryj/mysite/flask_app.py in <module>()
41
42
---> 43 class Ingredient(db.Model):
44 __tablename__ = "Ingredient"
45
/home/Harrryj/mysite/flask_app.py in Ingredient()
46 Ingredient_ID = db.Column(db.Integer, primary_key=True)
47 Ingredient_Name = db.Column(db.String(100))
---> 48 Ingredient_Calories = db.Column(db.Integer(100))
49
50
TypeError: object() takes no parameters
任何帮助将不胜感激!我知道我错过了什么
答案 0 :(得分:1)
本教程的原作者。问题是你有
Ingredient_Calories = db.Column(db.Integer(100))
在突出显示的行中。整数没有大小,所以你应该这样做:
Ingredient_Calories = db.Column(db.Integer)
顺便说一句,你的时间非常好。我刚刚写了一个second part to the tutorial,其中包括添加一个额外的表,所以你可能会在那里找到其他有用的东西。