gpt4 book ai didi

python - 如何创建更多表 Pythonanywhere

转载 作者:行者123 更新时间:2023-11-29 10:34:15 25 4
gpt4 key购买 nike

我按照教程创建了一个简单的数据库支持的 Flask 网站。 Here

我成功地遵循了本教程,但我正在努力使用这种方法创建多个表。我希望该表被称为“成分”。这是我的 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

如有任何帮助,我们将不胜感激!我知道我错过了一些东西

最佳答案

教程的原作者在这里。问题是你有

Ingredient_Calories = db.Column(db.Integer(100))

在突出显示的行中。整数没有大小,因此您应该这样做:

Ingredient_Calories = db.Column(db.Integer)

顺便说一句,你的时机非常好。我刚刚写了一个second part to the tutorial ,其中包括添加额外的表格,因此您可能会在那里找到其他有用的东西。

关于python - 如何创建更多表 Pythonanywhere,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46766989/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com