使用python将html表单输入写入文本文件
我试图用这段代码将一个数字从html表单打印到文本文档中进行存储,但它似乎不起作用使用python将html表单输入写入文本文件,python,html,raspberry-pi3,Python,Html,Raspberry Pi3,我试图用这段代码将一个数字从html表单打印到文本文档中进行存储,但它似乎不起作用 @app.route("/result",methods = ['POST', 'GET']) def result(): if request.method == 'POST': timer = request.form['timer_input'] f = open("timer.txt", "w") f.write("Water every {} da
@app.route("/result",methods = ['POST', 'GET'])
def result():
if request.method == 'POST':
timer = request.form['timer_input']
f = open("timer.txt", "w")
f.write("Water every {} days".format(timer)
templateData = template(text = "timer")
return render_template('timer.html', **templateData)
<form>Set frequencys (e.g. 2 = every 2 days): <br>
<input type ="number" name="timer_input">
<br>
</form>
有人知道它为什么不起作用吗?我已经在几个地方寻找替代方案,但它们都使用cgi或php,我对使用这两种方法都不感兴趣,即使您最初的问题看起来已经解决,这里有几点建议: 一个地址视图显示表单和另一个地址视图更为典型 填写表格时显示结果的地址 文件写入操作作为一个单独的函数看起来更安全。您需要关闭该文件,或者更好地使用 GET上不做任何操作,因此可以简化函数 以下是牢记以下理念的代码:
from flask import Flask, request, render_template
app = Flask(__name__)
@app.route('/')
def index():
return render_template('timer.html')
@app.route("/result", methods= 'POST')
def result():
timer = request.form['timer_input']
log_message = "Water every {} days".format(timer)
screen_message = "Sure, will water every {} days!".format(timer)
save(log_message)
return screen_message
def save(text, filepath='timer.txt'):
with open("timer.txt", "w") as f:
f.write(text)
模板/timer.html:
您正在使用flask吗?您在哪里看到错误消息?什么具体不起作用?操作和方法属性缺失also f.close缺失是的,我缺少的是操作和方法部分,谢谢,还有请求导入谢谢
<html><body>
<form action = "result" method = "POST">
Set frequencies (e.g. 2 = every 2 days):
<br>
<input type ="number" name="timer_input">
<input type = "submit">
<br>
</form>
</body></html>