2012-02-17 19 views
2

私は初心者です - ちょうどLearn Pythonの難しい道の終わりに達し、現在Flaskで手をつないでいます。私は、フラスコのウェブサイトにて公式チュートリアルを始めたが、this stepで立ち往生しています:Pythonシェルでフラスコチュートリアル - "属性エラー"

from __future__ import with_statement 
import sqlite3 
from flask import Flask, request, session, g, redirect, url_for, abort, render_template, flash 
from contextlib import closing 

DATABASE = 'tmp/flaskr.db' 
DEBUG = True 
SECRET_KEY = 'development key' 
USERNAME = 'admin' 
PASSWORD = 'default' 

app = Flask(__name__) 
app.config.from_object(__name__) 

app.config.from_envvar('FLASKR_SETTINGS',silent=True) 

def connect_db(): 
     return sqlite3.connect(app.config['DATABASE']) 

def init_db(): 
    with closing(connect_db()) as db: 
     with app.open.resource('schema.sql') as f: 
      db.cursor.executescript(f.read()) 
     db.commit() 

if __name__ == '__main__': 
    app.run() 

、私は

from flaskr import init_db 
init_db() 

をすれば、私は参照してください:Attribute Error: Flask object has no attribute 'open' (in the line containing app.open.resource in init_db)。どのように私はこれを修正するのですか?

答えて

2

あなたのコード:

app.open.resource 

コード例:

app.open_resource 

あなたは違いを見つけることができますか?あなたができない場合は、例のコードではドットを使用するアンダースコアを使用します。 Flaskオブジェクトにはopenという属性はありませんが、open_resourceというメソッドがあります。