Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/308.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用python将html表单输入写入文本文件_Python_Html_Raspberry Pi3 - Fatal编程技术网

使用python将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

我试图用这段代码将一个数字从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 {} 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>