Python 被烧瓶教程中的一个关键错误卡住了
My config.py:Python 被烧瓶教程中的一个关键错误卡住了,python,flask,Python,Flask,My config.py: OPENID_PROVIDERS = [ { 'name': 'Google', 'url': 'https://www.google.com/accounts/o8/id' }, { 'name': 'Yahoo', 'url': 'https://me.yahoo.com' }, { 'name': 'AOL', 'url': 'http://openid.aol.com/<username>' }, { 'name': 'Flickr', 'url'
OPENID_PROVIDERS = [
{ 'name': 'Google', 'url': 'https://www.google.com/accounts/o8/id' },
{ 'name': 'Yahoo', 'url': 'https://me.yahoo.com' },
{ 'name': 'AOL', 'url': 'http://openid.aol.com/<username>' },
{ 'name': 'Flickr', 'url': 'http://www.flickr.com/<username>' },
{ 'name': 'MyOpenID', 'url': 'https://www.myoopenid.com' }
]
app.config.from_object('config')
教程还活着
谢谢你的帮助
我的回溯:
Traceback (most recent call last):
File "/Users/biofobico/sites/env/microblog/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
return self.wsgi_app(environ, start_response)
File "/Users/biofobico/sites/env/microblog/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
response = self.make_response(self.handle_exception(e))
File "/Users/biofobico/sites/env/microblog/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
response = self.full_dispatch_request()
File "/Users/biofobico/sites/env/microblog/lib/python2.7/site-packages/flask/app.py", line 1360, in full_dispatch_request
rv = self.handle_user_exception(e)
File "/Users/biofobico/sites/env/microblog/lib/python2.7/site-packages/flask/app.py", line 1358, in full_dispatch_request
rv = self.dispatch_request()
File "/Users/biofobico/sites/env/microblog/lib/python2.7/site-packages/flask/app.py", line 1344, in dispatch_request
return self.view_functions[rule.endpoint](**req.view_args)
File "/Users/biofobico/Sites/env/microblog/app/views.py", line 32, in login
providers=app.config['OPENID_PROVIDERS'])
KeyError: 'OPENID_PROVIDERS'
login.html:
{% extends "base.html" %}
{% block content %}
<script type="text/javascript">
function set_openid(openid, pr)
{
u = openid.search('<username>')
if (u != -1) {
// openid requires a username
user = prompt('Enter your ' + pr + ' username:')
openid = openid.substr(0, u) + user
}
form = document.forms['login'];
form.elements['openid'].value = openid
}
</script>
<h1>Sign in</h1>
<form action="" method="post" name="login">
{{ form.hidden_tag() }}
<p>
Please enter your OpenID:<br>
{{ form.openid(size=80) }}<br>
{% for error in form.errors.openid %}
<span style="color: red;">[{{error}}]</span>
{% endfor %}
|{% for pr in providers %}
<a href="javascript:set_openid('{{pr.url}}', '{{pr.name}}');">{{pr.name}}</a> |
{% endfor %}
</p>
<p>{{ form.remember_me }} Remember Me</p>
<p><input type="submit" name="" value="Sign In"></p>
</form>
{% endblock content %}
{%extends“base.html”%}
{%block content%}
函数集\u openid(openid,pr)
{
u=openid.search(“”)
如果(u!=-1){
//openid需要用户名
user=prompt('输入您的'+pr+'用户名:')
openid=openid.substr(0,u)+用户
}
表单=文档。表单['login'];
form.elements['openid'].value=openid
}
登录
{{form.hidden_tag()}}
请输入您的OpenID:
{form.openid(size=80)}}
{form.errors.openid%中的错误为%1}
[{{error}}]
{%endfor%}
|{提供程序%中的pr为%0}
|
{%endfor%}
{{记住我}记住我
{%endblock内容%}
提前感谢问题在下面一行:
providers=app.config['OPENID_PROVIDERS'])
app.config字典的键“OPENID\u PROVIDERS”不存在。自从从config.py文件加载配置以来,您是否也执行了以下操作:
OPENID_PROVIDERS = [
{ 'name': 'Google', 'url': 'https://www.google.com/accounts/o8/id' },
{ 'name': 'Yahoo', 'url': 'https://me.yahoo.com' },
{ 'name': 'AOL', 'url': 'http://openid.aol.com/<username>' },
{ 'name': 'Flickr', 'url': 'http://www.flickr.com/<username>' },
{ 'name': 'MyOpenID', 'url': 'https://www.myoopenid.com' }
]
app.config.from_object('config')
请在此处阅读更多文档:
您需要添加视图.py以下内容:
from flask import flash, redirect
from app import app
from .forms import LoginForm
在config.py中
CSRF_ENABLED = True
SECRET_KEY = 'your-secret-key'
您可以共享整个堆栈跟踪吗?请共享login.html模板的代码以及错误堆栈跟踪。