从python重定向到变量href
我正在为Udacity作业编写wiki,并希望在导航栏中创建一个“编辑”按钮。基本上,我正在寻找的功能是,当你点击编辑时,你会被重定向到一个编辑页面,当前内容显示在编辑框中。保存该页面时,内容将在原始页面上更新 我认为我的问题在于html,如下所示:从python重定向到变量href,python,html,Python,Html,我正在为Udacity作业编写wiki,并希望在导航栏中创建一个“编辑”按钮。基本上,我正在寻找的功能是,当你点击编辑时,你会被重定向到一个编辑页面,当前内容显示在编辑框中。保存该页面时,内容将在原始页面上更新 我认为我的问题在于html,如下所示: <body> <div class="navbar"> {% if not user %} <a href="/signup">Signup</a>|<a
<body>
<div class="navbar">
{% if not user %}
<a href="/signup">Signup</a>|<a href="/login">Login</a>
{% else %}
<a href="/_edit{{wiki_url}}">Edit</a>|<a href="/logout">Logout</a>
{% endif %}
</div>
<div id="content">
{% block content %}
{% endblock %}
</div>
</body>
现在的情况是,无论我试图编辑哪个页面,我都会被重定向到/_edit/_edit
如有任何建议,将不胜感激
添加EditPage处理程序类:
class EditPage(Handler):
def render_editwiki(self, user="", title="", content="", error=""):
self.render("edit_page.html", user=user, title=title, content=content, error=error)
def get(self, wiki_url):
v = self.request.get('v')
user = self.user
if user:
if v:
v = int(v)
thisWiki = db.GqlQuery("SELECT * FROM Wiki WHERE url = :url AND version = :ver ORDER BY created DESC", url=wiki_rul, ver=v).get()
if not thisWiki:
self.redirect("/wiki/_edit%s" % wiki_url)
else:
thisWiki = db.GqlQuery("SELECT * FROM Wiki WHERE url = :url ORDER BY created DESC LIMIT 1", url=wiki_url).get()
if not thisWiki:
self.render_editwiki(user, wiki_url)
if thisWiki:
id = thisWiki.key().id()
w = Wiki.get_by_id(int(id))
self.render_editwiki(user, w.url, w.content)
else:
self.redirect("/wiki/signup")
def post(self, wiki_url):
content = self.request.get("content")
user = self.user
if user:
if content:
thisWiki = db.GqlQuery("SELECT * FROM Wiki where url = :url ORDER BY created DESC LIMIT 1", url=wiki_url).get()
if thisWiki:
id = thisWiki.key().id()
previous = Wiki.get_by_id(int(id))
current = previous.version + 1
w = Wiki(url=wiki_url, content=content, version=current)
w.put()
else:
w = Wiki(url=wiki_url, content=content,version=1)
w.put()
self.redirect('%s' % str(wiki_url))
else:
error = "No Content"
self.render("edit_page.html", content=content, error=error)
else:
self.redirect("/wiki/signup")
您是否已经为编辑url编写了url案例?您似乎被重定向到
/\u edit/\u edit
,因为wiki\u url
是/\u edit
。我猜这就是正在发生的事情:
- 您访问一个常规页面(
)wiki\u url=?
- 单击编辑url
- 您访问了编辑url,但没有页面(
)wiki\u url='/\u edit'
- 您将被重定向到(编辑页面的)编辑url,即
/\u edit/\u edit
这有意义吗?您是否已经为编辑url编写了url案例?您似乎被重定向到
/\u edit/\u edit
,因为wiki\u url
是/\u edit
。我猜这就是正在发生的事情:
- 您访问一个常规页面(
)wiki\u url=?
- 单击编辑url
- 您访问了编辑url,但没有页面(
)wiki\u url='/\u edit'
- 您将被重定向到(编辑页面的)编辑url,即
/\u edit/\u edit
这有意义吗?你应该在标签或问题正文中提到你正在使用的库/框架——flask?啊,这是谷歌应用程序引擎,所以我使用的是Jinja2你应该在标签或问题正文中提到你正在使用的库/框架——flask?啊,这是谷歌应用程序引擎,所以我使用的是Jinja2,这很有意义,但如果wiki\u url=”“,它只会转到/\u edit/\u edit。我的调试打印语句实际上显示了一个值,例如/wiki\u test。是的,你说得对。但是你说它会将你重定向到
/\u edit/\u edit
,不管最初的wiki\u url
是什么?是的,这是正确的。我已经为此奋斗了很长一段时间。如果我手动键入/_edit/wiki_test,它会正常工作,并在保存更改后重定向回/wiki_test。如果我点击/wiki\u test上的编辑按钮,它将重定向到/\u Edit/\u Edit。是的,这是有意义的,但只有当wiki\u url=”“时,它才会转到/\u Edit/\u Edit。我的调试打印语句实际上显示了一个值,例如/wiki\u test。是的,你说得对。但是你说它会将你重定向到/\u edit/\u edit
,不管最初的wiki\u url
是什么?是的,这是正确的。我已经为此奋斗了很长一段时间。如果我手动键入/_edit/wiki_test,它会正常工作,并在保存更改后重定向回/wiki_test。如果我点击/wiki\u test上的编辑按钮,它将重定向到/\u Edit/\u Edit。
class EditPage(Handler):
def render_editwiki(self, user="", title="", content="", error=""):
self.render("edit_page.html", user=user, title=title, content=content, error=error)
def get(self, wiki_url):
v = self.request.get('v')
user = self.user
if user:
if v:
v = int(v)
thisWiki = db.GqlQuery("SELECT * FROM Wiki WHERE url = :url AND version = :ver ORDER BY created DESC", url=wiki_rul, ver=v).get()
if not thisWiki:
self.redirect("/wiki/_edit%s" % wiki_url)
else:
thisWiki = db.GqlQuery("SELECT * FROM Wiki WHERE url = :url ORDER BY created DESC LIMIT 1", url=wiki_url).get()
if not thisWiki:
self.render_editwiki(user, wiki_url)
if thisWiki:
id = thisWiki.key().id()
w = Wiki.get_by_id(int(id))
self.render_editwiki(user, w.url, w.content)
else:
self.redirect("/wiki/signup")
def post(self, wiki_url):
content = self.request.get("content")
user = self.user
if user:
if content:
thisWiki = db.GqlQuery("SELECT * FROM Wiki where url = :url ORDER BY created DESC LIMIT 1", url=wiki_url).get()
if thisWiki:
id = thisWiki.key().id()
previous = Wiki.get_by_id(int(id))
current = previous.version + 1
w = Wiki(url=wiki_url, content=content, version=current)
w.put()
else:
w = Wiki(url=wiki_url, content=content,version=1)
w.put()
self.redirect('%s' % str(wiki_url))
else:
error = "No Content"
self.render("edit_page.html", content=content, error=error)
else:
self.redirect("/wiki/signup")