Колба 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' как переменная для функции обратного вызова, почему он не может ее увидеть?
- Также о функции перенаправления, которую я использую ... Есть ли способ вернуть ответ 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» также не работает.