Question

Je suis un débutant - vient d'atteindre la fin de Learn Python the Hard Way et je essaie maintenant ma main à Flask. J'ai commencé avec le tutoriel officiel sur le site Flask, mais je suis coincé à se cette étape :

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

Au Shell Python, si je fais

from flaskr import init_db
init_db() 

Je vois: Attribute Error: Flask object has no attribute 'open' (in the line containing app.open.resource in init_db). Comment puis-je résoudre ce problème?

Était-ce utile?

La solution

Votre code:

app.open.resource

Le code exemple:

app.open_resource

Pouvez-vous faire la différence? Dans le cas où vous ne pouvez pas, le code exemple utilise un trait de soulignement où vous utilisez un point. Un objet Flask n'a pas d'attribut appelé open, mais il a une méthode appelée open_resource .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top