无法将url给定的变量传递给路由的回调函数并重定向问题

时间:2018-08-30 11:39:42

标签: python flask

Flask app.py

@app.route( '/' ) 
@app.route( '/<page>' ) 
def index( page ): 

# use the variable form template for displaying 
counter = '''<center> 
                <table bgcolor=black bordercolor=orangered> 
                td><font size=3 color=lime> Αριθμός Επισκεπτών: </font></td> 
<td><a href="{{ url_for( '/log', page='%s' ) }}"><font size=3 color=plum> %d </font></a></td> 
                                </table> 
                        ''' % (page, pagehit) 

if page != 'index.html': 
    pdata = redirect( 'http://superhost.gr/cgi-bin/' + page ) 
    return pdata 

模板index.html

<div align=right> 
        <a href="{{ url_for( '/', page='some_value' ) }}">        <img src="/static/images/π.gif"> </a> 
</div> 

<a href="{{ url_for( '/', page='another_value' ) }}">        <img src="/static/images/download.gif"></a> 


我要做的就是当用户单击html模板中的图像时,将这些变量值传递到“ /”路由,以便对这些值执行一些操作

iam接收到的错误是这样的:

builtins.TypeError 
TypeError: index() missing 1 required positional argument: 'page'

我的意思是我确实在route中声明了,并且也将'page'作为回调函数的变量,为什么看不到它?

  1. 关于我正在使用的重定向功能...是否有办法找回运行该cgi-script的HTML响应,然后向该响应添加另一个HTML值?我使用了子流程和响应,但是它们无法将内容传递回pdata变量进行显示。 我实际上想做的事情是从我的flask应用程序脚本中尝试运行并获取cgi-script的响应

我刚刚尝试过:

@app.route( '/' )
@app.route( '/<page>' )
def index( page='index.html' ):

但是我得到了:

werkzeug.routing.BuildError
werkzeug.routing.BuildError: Could not build url for endpoint '/' with values ['page']. Did you mean 'log' instead?

我希望'page'变量具有默认值'index.html',但我想知道为什么它不能运行它。同样,“ page = None”也不起作用。

0 个答案:

没有答案