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 工作正常,但你需要将信息传递到模板渲染器以便打印结果!