2016-08-28 2 views
0

따라서 아래 코드를 참조하십시오. 하나의 스토리 테이블이있는 데이터베이스를 만들려고합니다.sqlalchemy.exc.ProgrammingError : (psycopg2.ProgrammingError) relation "story"가 존재하지 않습니다.

는 이야기 테이블도 생성되지 않습니다
sqlalchemy.exc.ProgrammingError: (psycopg2.ProgrammingError) relation "story" does not exist 
LINE 1: INSERT INTO story (story_title, user_story, acceptance_crite... 
       ^
[SQL: 'INSERT INTO story (story_title, user_story, acceptance_criteria, business_value, estimation, status) VALUES (%(story_title)s, %(user_story)s, %(acceptance_criteria)s, %(business_value)s, %(estimation)s, %(status)s) RETURNING story.id'] [parameters: {'acceptance_criteria': 'asdasd', 'estimation': '1', 'user_story': 'asd', 'status': 'Planning', 'story_title': 'asd', 'business_value': '100'}] 

, 나는 pgAdmin를 통해 확인 : 나는 다음과 같은 오류가 이것을 실행하려고하면 입력은 HTML 입력 부분

from flask import Flask, render_template 
from flask_sqlalchemy import SQLAlchemy 
from flask import request, redirect, url_for 

app = Flask(__name__) 
password = input("Your database password: ") 
app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql://adambodnar:{}@localhost/user_stories'.format(password) 
db = SQLAlchemy(app) 

class Story(db.Model): 
    id = db.Column(db.Integer, primary_key=True) 
    story_title = db.Column(db.String(80), unique=True) 
    user_story = db.Column(db.Text) 
    acceptance_criteria = db.Column(db.Text) 
    business_value = db.Column(db.Integer) 
    estimation = db.Column(db.Integer) 
    status = db.Column(db.String(30)) 

    def __init__(self, story_title, user_story, acceptance_criteria, business_value, estimation, status): 
     self.story_title = story_title 
     self.user_story = user_story 
     self.acceptance_criteria = acceptance_criteria 
     self.business_value = business_value 
     self.estimation = estimation 
     self.status = status 


@app.route('/') 
def index(): 
    return render_template('form.html') 


@app.route('/story', methods=['POST']) 
def story_post(): 
    new_story = Story(request.form['story_title'],request.form['user_story'], request.form['acceptance_criteria'], request.form['business_value'], request.form['estimation'], request.form['status']) 


    db.session.add(new_story) 
    db.session.commit() 
    return redirect(url_for('index')) 

if __name__ == '__main__': 
    app.run(host='0.0.0.0', port=8000) 

에서 온다. 나는 많은 것을 시도했지만, 테이블을 떨어 뜨리라고 제안 된 몇 가지 질문이 있지만 그것은 만들어지지 않았다.

답변

0

플라스크 및 sqlalchemy에 대해 quickstart guide을 따라 갔습니까? 어쨌든, 가이드에 당신은 이렇게 말한다 통지합니다 : 테이블 생성 코드가없는 생성되는 테이블을 설명하는 누락 된 것으로 보인다 귀하의 질문에 당신이 포함 된 코드에서

To create the initial database, just import the db object from an interactive Python shell and run the SQLAlchemy.create_all() method to create the tables and database:

>>> from yourapplication import db 
>>> db.create_all() 

합니다.

당신은 당신의 응용 프로그램 (오른쪽 db = SqlAlchemy(app) 후 넣어)와 db.create_all()을 포함하여 고려할 수 있습니다 - 표준 SQLAlchemy의 버전 등이 래퍼 함수는 단지 테이블이 이미 존재하는 경우 날려 새 테이블을 생성하지 않아야합니다.

+0

당신에게 너무 감사합니다 <3 – dmbdnr