#python #html #flask
Вопрос:
Flask
Как вы можете видеть мой код колбы, у меня есть два значения «запустить конвейер» и «проверить состояние и результат конвейера», но когда я выполняю сценарий колбы, он открывает мой html-код в браузере, и когда я выбираю любую операцию, подобную «проверить состояние и результат конвейера», она должна возвращать мне ту же строку, но она не возвращает строку, она возвращает только html-страницу, которую я поместил в мое другое состояние. Кто-нибудь может подсказать, в чем проблема?
from flask import Flask, request, render_template
app= Flask(__name__)
#@app.route('/')
@app.route('/',methods=['GET'])
def hello_world():
return render_template('index.html')
@app.route('/check', methods=['GET','POST'])
def check():
if request.method=='POST':
Operations=request.form['Operations']
if(Operations=="Run Pipeline"):
return ('index.html', Operations)
elif (Operations=="Check state and result of pipeline"):
return ('index.html', Operations)
else:
return render_template('index.html')
if __name__=='__main__':
app.run(debug=True)
HTML
<!DOCTYPE html>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>My Title</title>
</head>
<body>
<h1 style="background-color:blue;", title="This is to run and check state of azure devops pipelines using one-click">Azure Devops Pipeline</h1>
<hr>
<p>Choose Options to perform operation on pipeline:</p>
<form action="{{url_for('check')}}",method="post">
<!-- <label for='Operations'>Choose the operation to perform</label> -->
<Select name="Operations" id='Operations' required='required'>
<option value="Run Pipeline">Run Pipeline</option>
<option value="Check state and result of pipeline">Check state and reult of pipeline</option>
</Select><br><br>
<button id="sub" type='submit'>Click me</button>
</form>
</body>
<hr>
</html>
Ответ №1:
Проблема в том, что в вашей index.html
строке 23 после URL-адреса для действий есть дополнительная запятая
Ваш html:
<form action="{{url_for('check')}}",method="post">
Чинить:
<form action="{{url_for('check')}}" method="post">
Хотя, когда вы исправите это, выберите значение в форме и отправьте его. Вы получите это в результате
Я не уверен, каким вы хотите видеть результат, поэтому я оставлю его там.
Комментарии:
1. хорошо, это было моей ошибкой, это была синтаксическая ошибка, я хочу, чтобы при нажатии на кнопку запустить конвейер, он должен напечатать это в браузере, как получить это значение, потому что он выполняет только другое условие. а как насчет этого? Операции=запрос.форма[‘Операции’] если(Операции==»Запустить конвейер»): возврат (‘index.html», Операции) почему я не получаю операции= «Запустить конвейер», когда я выбираю «Запустить конвейер», Есть ли способ получить это?
2. хорошо, я получил ответ, я удалил другую часть, а затем я также удалил index.html из каждого заявления о возврате. Вместо просьбы. форма я использовал request.form.get(‘Операции), и я получил желаемый o/p.