Для записи в текстовый файл, почему бы не определить такую функцию, как:
def write_file(data):
with open('containers.txt', 'a') as f:
f.write(data + '\n')
Помещение функции open
в оператор with
означает, что объект f
доступен в этом блоке . Файл также автоматически закрывается, когда блок завершается.
Тогда у вас может быть одна функция просмотра, которая обрабатывает как рендеринг формы, так и принимает опубликованный результат:
@app.route('/', methods = ['GET','POST'])
def my_form():
if request.method=='POST':
text = request.form['u']
write_file(text)
return "You inputed " + text
elif request.method=="GET":
return render_template('form.html')
Вы также должны добавьте атрибут action
к начальному тегу form
:
<form method='POST' action='{{ url_for("my_form") }}'>
Теперь форма будет отправлена на правильную конечную точку, даже если вы измените конечную точку, назначенную функции my_form
.