Python web.py 使用 Jinja2 重定向
Python web.py redirect using Jinja2
我在主模块中有 类
__init__.py
import web
from web.contrib.template import render_jinja
urls = (
'/', 'main.views.login',
'/login', 'main.views.login',
'/feature', 'main.views.feature'
)
app = web.application(urls, globals())
render = render_jinja(
'main/templates',
encoding='utf-8',
)
views.py
from main import web, render
class login:
def GET(self):
return render.login(title="Login")
def POST(self):
data = web.input();
userName = data['username']
password = data['password']
if((userName == 'viv') and (password == 'viv')):
raise web.seeother('/feature?user=' + userName)
return render.login(error="Login Failed !!!")
class feature:
def GET(self):
print(web.input())
return render.feature()
在 login.POST 中,比较表单数据,如果成功我需要重定向到 feature.html 其中有
<div>Hello {{ user }}</div>
使用带有 web.py 的 JINJA2 模板,我如何使用参数 'user' 重定向到 feature.html。上面的代码有效,但 'user' 作为 URL 参数发送。基本上我想尝试 web.py 使用 JINJA2 templating.Please 帮助重定向。
您需要将您的 user
信息传递到 render.feature()
调用中。
class feature:
def GET(self):
return render.feature(user=web.input().user)
这是可行的,因为 web.input()
将获得 POST 的结果(当在 class login
中调用时,并使用 GET 获取 URL 参数(当在 class feature
.) 所以你重定向到 /feature
工作正常,但你需要将信息传递到模板渲染器以便打印结果!
我在主模块中有 类
__init__.py
import web
from web.contrib.template import render_jinja
urls = (
'/', 'main.views.login',
'/login', 'main.views.login',
'/feature', 'main.views.feature'
)
app = web.application(urls, globals())
render = render_jinja(
'main/templates',
encoding='utf-8',
)
views.py
from main import web, render
class login:
def GET(self):
return render.login(title="Login")
def POST(self):
data = web.input();
userName = data['username']
password = data['password']
if((userName == 'viv') and (password == 'viv')):
raise web.seeother('/feature?user=' + userName)
return render.login(error="Login Failed !!!")
class feature:
def GET(self):
print(web.input())
return render.feature()
在 login.POST 中,比较表单数据,如果成功我需要重定向到 feature.html 其中有
<div>Hello {{ user }}</div>
使用带有 web.py 的 JINJA2 模板,我如何使用参数 'user' 重定向到 feature.html。上面的代码有效,但 'user' 作为 URL 参数发送。基本上我想尝试 web.py 使用 JINJA2 templating.Please 帮助重定向。
您需要将您的 user
信息传递到 render.feature()
调用中。
class feature:
def GET(self):
return render.feature(user=web.input().user)
这是可行的,因为 web.input()
将获得 POST 的结果(当在 class login
中调用时,并使用 GET 获取 URL 参数(当在 class feature
.) 所以你重定向到 /feature
工作正常,但你需要将信息传递到模板渲染器以便打印结果!