【发布时间】:2015-01-07 07:09:10
【问题描述】:
所以已经提出了几个这样的问题,这个错误意味着函数必须返回一个值,或者只是意味着它应该返回一些东西。
我的 routes.py 文件中已经有了它,但它仍然无法正常工作。
这是 route.py 的代码
from flask import *
from functools import wraps
app = Flask(__name__)
app.secret_key = "my precious"
@app.route('/')
def home():
return render_template('home.html')
@app.route('/welcome')
def welcome():
return render_template('welcome.html')
@app.route('/logout')
def logout():
session.pop('logged_in',None)
return redirect (url_for('home'))
@app.route('/hello')
def hello():
return render_template('hello.html')
@app.route('/log', methods=['GET','POST'])
def log():
error = None
if request.method == "POST":
if request.form['username'] != 'admin' or request.form['password'] != 'admin':
error = "Invalid credentials"
else:
session['logged_in'] = True
return redirect (url_for('hello'))
return render_template('log.html', error=error)
if __name__ == '__main__':
app.run(debug=True)
log.html 代码
{% extends "templates.html" %}
{% block content %}
<h1>Login</h1>
{% If error %}
<p class=error> <strong> Error: </strong> {{ error }}
{% endif %}
<form action="" method="POST">
<dl>
<dt>Username:
<dt><input type="text" name="username" value="{{
request.form.username }}">
<dt>Password:
<dd><input type="password" name="passowrd">
</dl>
<p><input type="submit" value="Login">
</form>
{% endblock %}
templates.html 的代码
<html>
<head>
<title>Flask tutorial (Part 1)</title>
</head>
<header>
<div class="navbar navbar-inverse">
<div class="navbar-inner">
<a class="brand" href="/">Real python (for the web!)</a>
<ul>
<li><a href="/welcome">Welcome</a></li>
<li><a href="/log">login</a></li>
</ul>
</div>
</div>
</header>
<body>
<div class="container">
{% block content %}
{% endblock %}
</div>
</body>
</html>
home.html 的代码
{% extends "templates.html"%}
{% block content %}
<div class="jumbo">
<h2>Welcome to Flask</h2>
<br/>
<p>click <a href="/welcome">here</a> to go to welcome page</p>
</div>
{% endblock %}
hello.html 的代码
{% extends "templates.html" %}
{% block content %}
<h2>Welcome! You are logged in.</h2>
{% endblock %}
welcome.html 的代码
{% extends "templates.html"%}
{% block content %}
<h2>Sample</h2>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
{% endblock %}
有人可以帮我解决我哪里出错了吗? 提前致谢
【问题讨论】: