2012-02-17 5 views
2

Я новичок - только что дошел до конца Learn Python the Hard Way, и теперь я пытаюсь изо всех сил в Flask. Я начал с официальным учебником на сайте Колбы, но я застрять на this step:Flask Tutorial - «Ошибка атрибута»

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

В Python Shell, если я

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.

Смежные вопросы