Невозможно передать переменную, заданную из URL, в функцию обратного вызова маршрута и проблему перенаправления - PullRequest
0 голосов
/ 30 августа 2018

Колба 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'

Я имею в виду, что я объявил в маршруте, и у меня есть 'page' как переменная для функции обратного вызова, почему он не может ее увидеть?

  1. Также о функции перенаправления, которую я использую ... Есть ли способ вернуть ответ HTML от запуска этого cgi-скрипта, а затем добавить другое значение HTML к этому ответу? Я использовал подпроцесс и Response, но они не смогли доставить содержимое обратно в переменную pdata для отображения. Помимо всего прочего я хочу, чтобы внутри скрипта приложения фляги попытался запустить и получить ответ cgi-скрипта

Я только что попробовал это:

@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» также не работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...