2017-10-16 7 views
0

チュートリアルに続いて、単純なデータベースバックフラスコのWebサイトを作成しました。 Hereもっとテーブルを作成する方法Pythonanywhere

私はチュートリアルに成功しましたが、私はこの方法を使って複数のテーブルを作成しようとしています。テーブルをIngredientにしたい。

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 

任意の助けをいただければ幸い: は、ここで私がしようとすると、bashのコンソールを介してデータベースにテーブルを作成するときにこの問題が発生した

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)) 

flask_app.py

から私のコードです!私は何かを逃していることを知っています

答えて

1

チュートリアルのオリジナル著者はここにあります。問題は、あなたが

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

の行が強調表示されていることです。整数にはサイズがないので、代わりにこれを行う必要があります。

Ingredient_Calories = db.Column(db.Integer) 

脇の下として、あなたのタイミングは優れています。私はちょうどsecond part to the tutorialを書きました。余分なテーブルを追加することが含まれているので、そこに他の便利なものがあるかもしれません。

+0

Worked!本当にありがとう :) – Harrryj

関連する問題