Я относительно новичок в кодировании, поэтому я прошу прощения, если в моем сообщении есть какая-либо ошибка или неопределенность, исправьте меня. В настоящее время я пытаюсь выучить Flask и использую Windows терминал cmd.exe.
Код, написанный в редакторе:
from flask import Flask, render_template, request, redirect
...
def write_to_file(data):
with open ("database.txt",mode='a') as database:
email = data["email"]
subject = data["subject"]
message = data["message"]
file = database.write(f'\n{email}, {subject}, {message}')
print(6)
@app.route('/submit_form', methods=['POST', 'GET'])
def submit_form():
if request.method == 'POST':
data = request.form.to_dict()
write_to_file(data)
print(data)
return redirect('/thankyou.html')
else:
return 'Something went wrong. Try again'
Терминал:
127.0.0.1 - - [19/Apr/2020 20:53:03] "[37mGET / HTTP/1.1[0m" 200 -
127.0.0.1 - - [19/Apr/2020 20:53:14] "[37mGET /contact.html HTTP/1.1[0m" 200 -
6
{'email': 'moon@gmail.com', 'subject': 'moonmoon', 'message': 'moonmoonsunmoon'}
127.0.0.1 - - [19/Apr/2020 20:54:08] "[32mPOST /submit_form HTTP/1.1[0m" 302 -
127.0.0.1 - - [19/Apr/2020 20:54:08] "[37mGET /thankyou.html HTTP/1.1[0m" 200 -
Как видите, данные принимаются в виде электронной почты, пароля и сообщения, напечатанных в терминале. Число 6 также напечатано, так что функция write_to_file, похоже, работает, однако функция не добавляет данные в мой файл database.txt. Текстовый файл все еще пуст. Я пробовал множество вещей, таких как перезапуск сервера, изменение режима с 'a' на 'w', и функция write_to_file по-прежнему не записывает собранные данные с сервера в текстовый файл. Спасибо, что прочитали мой пост. Пожалуйста, помогите!