python - 新人按着flask教程一步一步的走,报错..求指导...
PHPz
PHPz 2017-04-17 13:00:05
[Python讨论组]

教程地址:http://docs.jinkan.org/docs/flask/tutorial/dbinit.html#tutorial-dbinit

# all the imports                                          
import sqlite3

from flask import Flask, request, session, g, redirect, url    _for, abort, render_template, flash
# configuration
DATABASE = '/tmp/flaskr.db'
DEBUG = True
SECRET_KEY = 'development key'
USERNAME = 'admin'
PASSWORD = 'default'

#create our little application 
app = Flask(__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 里创建数据库这一步报如下错误:

>>> init_db()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "flaskr.py", line 18, in init_db
    with closing(connect_db()) as db:
NameError: global name 'closing' is not defined
PHPz
PHPz

学习是最好的投资!

全部回复(2)
PHP中文网

from future import with_statement
from contextlib import closing

这两个导入你没做吧?

怪我咯

line2 直接改为from flask import * 加上import os
DATABASE = '/tmp/flaskr.db' 如果是win把tmp改为所在的文件名

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号