Премини към съдържанието
Форумът в приложение

По-лесно сърфиране. Научи повече.

Kaldata.com - Форуми

Приложение на форума на цял екран с push известия, значки и други.

За да инсталирате това приложение на iOS и iPadOS
  1. Докоснете Иконата за споделяне в Safari
  2. Превъртете менюто и докоснете Добавяне към началния екран.
  3. Докоснете Добавяне в горния десен ъгъл.
За да инсталирате това приложение на Android
  1. Докоснете менюто с 3 точки (⋮) в горния десен ъгъл на браузъра.
  2. Докоснете Добавяне към началния екран или Инсталиране на приложение.
  3. Потвърдете, като докоснете Инсталиране.

Добре дошли!

Добре дошли в нашите форуми, пълни с полезна информация. Имате проблем с компютъра или телефона си? Публикувайте нова тема и ще намерите решение на всичките си проблеми. Общувайте свободно и открийте безброй нови приятели.

Моля, регистрирайте се за да публикувате тема и да получите пълен достъп до всички функции.

 

Манипулиране на информация в Flask/Python, подадена чрез html form.

Featured Replies

Здравейте, формата ми съдържа 3 радио-та и ми трябва информация за това кое от тях е избрано и въз основа на тази ситуация искам да return-на на потребителя определена страница (1.html, 2.html и т.н.). 

Пробвах това решение: https://stackoverflow.com/a/31663422/ , но стигнах до там и зацепих.

Функцията винаги влиза в else и ми дава "error".

 

app.py > 

from flask import Flask, render_template, url_for, flash, redirect, request
from flask_wtf import Form, FlaskForm, form
from wtforms import RadioField, widgets, Form, StringField, TextAreaField, PasswordField, validators

app = Flask(__name__)
app.config['SECRET_KEY']='development'

@app.route("/home")
@app.route("/")
def home():
    return render_template("home.html")

@app.route("/about")
def about():
    return render_template("about.html")

@app.route("/handle_data", methods=['POST'])
def handle_data():
    if request.method == 'POST':
        option = request.form['options']
        if option == option[0]: # тук мисля че греша, не знам как да го направя по-правилно 
            return render_template("about.html")
        else:
            return "error"

if __name__=='__main__':
    app.run(debug=True)

 

home.html > 

<form name="myForm" action="/handle_data" method="POST" >
    <p>
    <input type="radio" id="option1" name="options" value="option1"> Option1 </input><br>
    <input type="radio" id="option2" name="options" value="option2"> Option 2 </input><br>
    <input type="radio" id="option3" name="options" value="option3"> Option3 </input><br>
    <p>
    <input type="submit" value="Submit">
    </p>
<form>


 

  • Автор

Реших да пробвам да ги сравня със стрингове вместо масиви и реши, че ще стане.

@app.route("/handle_data", methods=['POST'])
def handle_data():

    if request.method == 'POST':
        if 'submit_button' in request.form:
            user_answer = request.form['options'] # option = request.form['options']
            if user_answer == "option1":
                return "op1"
            elif user_answer == "option2":
                return "op2"
<form name="myForm" action="/handle_data" method="POST" >
  	<input type="radio" id="option1" name="options" value="option1"> Option1 </input><br>
	<input type="radio" id="option2" name="options" value="option2"> Option 2 </input><br>
	<input type="radio" id="option3" name="options" value="option3"> Option3 </input><br>
	<input type="submit" value="Submit" name="submit_button">
<form>

 

преди 12 минути, killchain написа:

Дебъг и виж какво ти е option след реда, в който изпълняваш ей това:


option = request.form['options']

 

Първо за това трябваше да се сетя... Мерси.

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

Разглеждащи това в момента 0

  • Няма регистрирани потребители разглеждащи тази страница.

Дарение

  • Подкрепи съществуването на форума - направи дарение
    25%
    Дарени 252.69 EUR от нужните 1,000.00 EUR

Бюлетин

Получавайте известие, когато има важна промяна или новина свързана с форума.

Профил

Навигация

Търсене

Търсене

Конфигуриране на push известия в браузъра

Chrome (Android)
  1. Докоснете иконата на катинар до адресната лента.
  2. Докоснете Разрешения → Известия.
  3. Променете предпочитанията си.
Chrome (Desktop)
  1. Кликнете върху иконата на катинар в адресната лента.
  2. Изберете Настройки на сайта.
  3. Намерете Известия и коригирайте предпочитанията си.