首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OperationalError:(sqlite3.OperationalError)没有这样的表: user

OperationalError:(sqlite3.OperationalError)没有这样的表: user
EN

Stack Overflow用户
提问于 2015-11-18 15:36:15
回答 1查看 4K关注 0票数 0

总的来说,我对烧瓶和网络开发完全陌生。我需要的是登录到一个使用蒸汽id的网站。我按它所说的做这里,但是得到以下错误:

OperationalError:(sqlite3.OperationalError)没有这样的表: user

它似乎打开了正确的蒸汽网站,但它打破了当我按下登录在。那么,我的错误是什么?任何帮助都是非常感谢的。守则:

代码语言:javascript
复制
from flask import Flask, render_template, redirect, session, json, g
from flask_bootstrap import Bootstrap
from flask.ext.sqlalchemy import SQLAlchemy
from flask.ext.openid import OpenID
import urllib
import re

app = Flask(__name__)
app.secret_key = '123'
Bootstrap(app)
app.config.from_pyfile('settings.cfg')
db = SQLAlchemy(app)
oid = OpenID(app)

class User(db.Model):
    id = db.Column(db.Integer, primary_key=True)
    steam_id = db.Column(db.String(40))
    nickname = db.String(80)

    @staticmethod
    def get_or_create(steam_id):
        rv = User.query.filter_by(steam_id=steam_id).first()
        if rv is None:
            rv = User()
            rv.steam_id = steam_id
            db.session.add(rv)
        return rv

def get_steam_userinfo(steam_id):
    options = {
        'key': app.config['STEAM_API_KEY'],
        'steamids': steam_id
    }
    url = 'http://api.steampowered.com/ISteamUser/' \
          'GetPlayerSummaries/v0001/?%s' % urllib.urlencode(options)
    rv = json.load(urllib.urlopen(url))
    return rv['response']['players']['player'][0] or {}

_steam_id_re = re.compile('steamcommunity.com/openid/id/(.*?)$')

@app.route('/login')
@oid.loginhandler
def login():
    if g.user is not None:
        return redirect(oid.get_next_url())
    return oid.try_login('http://steamcommunity.com/openid')

@oid.after_login
def create_or_login(resp):
    match = _steam_id_re.search(resp.identity_url)
    g.user = User.get_or_create(match.group(1))
    steamdata = get_steam_userinfo(g.user.steam_id)
    g.user.nickname = steamdata['personaname']
    db.session.commit()
    session['user_id'] = g.user.id
    flash('You are logged in as %s' % g.user.nickname)
    return redirect(oid.get_next_url())

@app.before_request
def before_request():
    g.user = None
    if 'user_id' in session:
        g.user = User.query.get(session['user_id'])

@app.route('/')
def homepage():
    return render_template('mainpage.html')

@app.route('/logout')
def logout():
    session.pop('user_id', None)
    return redirect(oid.get_next_url())

if __name__ == '__main__':
    app.run(debug=True)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-11-18 15:39:37

在运行应用程序之前,您需要运行一个db.create_all()。这将创建数据库中模型所描述的所有表。

如果你是新来的酒瓶,你可以跟随快速启动测试这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33784212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档