Не получить атрибуты от элементов формы - PullRequest
0 голосов
/ 25 июня 2018

У меня есть приложение Flask, где я пытаюсь получить некоторую информацию из моей HTML-формы, однако я не получаю никакой информации, и я попробовал все, но, похоже, ничего не работает.

Routes.py

@app.route("/about", methods=['POST', 'GET'])
def about():
    name = request.form.get('name')
    lastname = request.form.get('lastname')
    msg = Message(
       subject='Hello ' + str(name),
       sender='kristofferlocktolboll@gmail.com',
       recipients=
           ['kristofferlocktolboll@gmail.com'],
       html= 'hello mr ' + str(lastname))
    mail.send(msg)
    confirm_msg = "Your message has been sent!"
    return render_template("about.html", confirm_msg=confirm_msg)

about.html:

 <h1 class="mb-5"> Enter your message, and i will get back to you as soon as possible</h1>

          <form action="{{ url_for('about') }}" method="POST">
                First name: <br>
                <input type="text" name="name" size="35"><br>
                  Last name:<br>
                 <input type="text" name="lastname" size="35"><br>
                    Email-address: <br>
                 <input type="email" name="email" size="35"><br>
                 Phone-number: <br>
                 <input type="text" name="phone" size="35"><br>
                Enter your message: <br>
                 <textarea type="text" name="message" rows="7" cols="40"></textarea><br>
            </form>
            <br>
            <form>
              <button type="submit" class="btn btn-outline btn-xl js-scroll-trigger" value="submit" method="POST">Let's get in touch</a>
            </form>
            </div>
        </div>        
              </div>
            </div>
          </div>
        </div>
      </div>

Я хочу, чтобы это был пост-запрос, но всякий раз, когда я удаляю атрибут 'GET' из моих методов в моем @app.route Я получаю сообщение об ошибке «МЕТОД НЕ РАЗРЕШЕН», возможно, это связано с тем, что он использует GET для перенаправления.

Письмо успешно отправлено, поэтому почтовый API работает нормально.Но он отправляется со значениями «Нет», где атрибуты имени и фамилии находятся.

РЕДАКТИРОВАТЬ: мне нужно привести объекты имени и фамилии в строку, в противном случае я получу нетипошибка

1 Ответ

0 голосов
/ 26 июня 2018

Создать template/my-form.html

<form method="POST">
    <input name="name">
    <input name="lastname">
    <input type="submit">
</form>

В приложении колбы routes.py

from flask import Flask, request, render_template

app = Flask(__name__)

@app.route('/')
def my_form():
    return render_template('my-form.html')

@app.route('/', methods=['POST'])
def my_form_post():
    name = request.form['name']
    lastname = request.form['lastname'] 
    <do your manipulation>
    return render_template(yourtemplate,processedtext = processedtext,somethingelse=somethingelse)

вы можете отобразить переменные во втором шаблоне рендеринга как

<html>
<body>
  {{processedtext}}
  {{somethingelse}}
</body>
</html>

и отобразить их

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