Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.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 如何将数据写入Flask中的文本文件?_Python_File_Flask_Server_Writetofile - Fatal编程技术网

Python 如何将数据写入Flask中的文本文件?

Python 如何将数据写入Flask中的文本文件?,python,file,flask,server,writetofile,Python,File,Flask,Server,Writetofile,我们的目标是将一个名为“inputed_email”的变量写入一个名为“test3.txt”的文本文件中。因为这是在服务器上进行的,所以我们需要确保这个Python脚本可以访问目录和文本文件 @app.route('/', methods=['GET', 'POST']) def my_form(): inputed_email = request.form.get("email") if request.method == 'POST' and inputed_email:

我们的目标是将一个名为“inputed_email”的变量写入一个名为“test3.txt”的文本文件中。因为这是在服务器上进行的,所以我们需要确保这个Python脚本可以访问目录和文本文件

@app.route('/', methods=['GET', 'POST'])
def my_form():
    inputed_email = request.form.get("email")
    if request.method == 'POST' and inputed_email:

        # write to file
        with open('/var/www/FlaskApp/FlaskApp/test3.txt', 'w') as f:
            f.write(str(inputed_email))

        return render_template('my-form.html', email=inputed_email)
    return render_template('my-form.html')

但是,写入“test3.txt”的代码不起作用。运行时返回错误500(内部服务器错误)。感谢您的帮助

我猜您没有指定正确的目录。如果flask类似于Django,则当应用程序正在运行时,路径可能位于不同的位置。尝试打印os.listdir()以查看您的位置

from os import listdir

@app.route('/', methods=['GET', 'POST'])
def my_form():
    inputed_email = request.form.get("email")
    if request.method == 'POST' and inputed_email:
        print(listdir) ## print listdir python 2
        # write to file
        with open('/var/www/FlaskApp/FlaskApp/test3.txt', 'w') as f:
            f.write(str(inputed_email))

        return render_template('my-form.html', email=inputed_email)
    return render_template('my-form.html')
如果它没有向控制台打印任何内容,则错误出现在行打印之前。

尝试运行此命令

$ export FLASK_ENV=development
$ export FLASK_DEBUG=True
$ export FLASK_APP=<your .py file>
$ flask run
$export FLASK\u ENV=开发
$export\u DEBUG=True
$export\u应用程序=
$flask运行
现在,服务器将进行回溯,而不仅仅是
内部服务器错误
。但不要在生产中使用
FLASK\u DEBUG
选项