我有一个用php编写的网站,其中包含example.com/index.php?q=xyz
等网址。
现在我在flask(python)中重写了它,其中包含example.com/search?q=xyz
等网址。
最好的方法是什么?
我想到的一种方法是在php中编写一个index.php和代码来重定向。但是仅使用应用(烧瓶)可以达到相同的效果吗?
更新:发送参数不完全相同,也有一些自定义。
答案 0 :(得分:1)
如果使用apache,将重写规则放入httpd.conf文件的目录部分或.htaccess文件可能是最简单的方法。
答案 1 :(得分:1)
是的,可以在Flask中完成。
我先向您展示代码,然后再解释。
@app.route('/index.php')
def index():
url = url_for('search',q=request.args['q'])
return redirect(url)
@app.route('/search')
def search():
# Access q as request.args['q'] same as we have done above
每当Flask收到一些附加到有效网址的参数时,在这种情况下q附加到'index.php'url,用?作为加入元素。它将这些参数保存在一个名为args的MultiDict(Read about it here)中,它可以作为Flask的全局请求变量的属性。
您可以将其作为
进行访问 request.args['parameter_name']
请记住,参数值已转换为字符串,任何整数值都应通过int()传递。
此代码只捕获index.php url及其参数,然后重定向到您的新搜索网址,其参数按原样传递。您还可以处理参数并传递给搜索网址。这样两个网址最终都能完成您想要的工作。
希望有所帮助! :)
答案 2 :(得分:0)
Flask不关心规则中的名称是什么,因为它们不指向文件。你可以写:
@app.route('/index.php')
def index_view():
pass