我是StackOverflow和Python的新手。我正在尝试制作一个基本的应用程序,我有我的<形式>标签,我的烧瓶应用程序和我的.txt。我正在尝试改变价值观,但它不起作用,或者我不知道为什么它不起作用。你能不能帮我一把忙?
Python Flask:
from flask import Flask,render_template,flash,request,redirect
import os
app = Flask(__name__)
from lines import get_line
@app.route('/', methods=['POST'])
def change_line():
search_line= "this"
try:
for line in this.input(os.path.join(APP_STATIC, u'line.txt'),inplace=1):
if search_line in line:
x = line.replace(search_line,search_line + "\n" + request.form.get(u'this'))
print (x)
else:
print (x)
except BaseException as e:
print e
return render_template('line.html')
@app.route('/')
def showLine():
line = get_line()
return render_template('line.html', line=line)
if __name__ == '__main__':
app.run()
HTML:
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Change the value of this line</title>
</head>
<body>
<form method="post" name="test">
<h4>Chaging Values with POST Method</h4>
<div class="col-sm-9">
<label class="col-sm-3 col-sm-3 control-label">I want to change : </label>
<input type="text" class="form-control" name="address" value="{{ line }}">
</div>
<input type="submit" value="Save Changes!">
</form>
我的.txt文件:
我想更改此。
它返回“this”的值。
基本上当我运行我的应用程序时,当我尝试编辑“Hello”时它显示“this”它会给我一个错误:
- 在http://127.0.0.1:5000/上运行(按CTRL + C退出)Line 找到了! : 这个。 127.0.0.1 - - [21 / Oct / 2016 13:09:07]“GET / HTTP / 1.1”200 - 全局名称'this'未定义 127.0.0.1 - - [21 / Oct / 2016 13:09:30]“POST / HTTP / 1.1”200 -
我的输出: Please click here to see my output
我很抱歉,如果这是一个愚蠢的问题,或者如果之前已经回答过这个问题,但我一直在寻找答案,但我没有发现任何相关问题,我尝试了不同的代码,但没有工作,一直在观看youtube视频和一切。
如果有人知道解决方案对我有用。
这是学习和Python学校。谢谢!
使用Python 2.7
修改
我使用下面的建议更新了代码,但它还没有运行。 它不会用replace替换我的“this”。
from flask import Flask,render_template,flash,request,redirect
import os
app = Flask(__name__)
from lines import get_line
import fileinput
@app.route('/', methods=['POST'])
def change_line():
search_line= "this"
try:
for line in fileinput.input(os.path.join(APP_STATIC, u'line.txt'),inplace=1):
if search_line in line:
x = line.replace(search_line,search_line + "\n" + request.form.get(u'asd'))
print (x)
else:
print (x)
except BaseException as e:
print e
return render_template('line.html')
@app.route('/')
def showLine():
line = get_line()
return render_template('line.html', line=line)
if __name__ == '__main__':
app.run(debug=True)
答案 0 :(得分:0)
this.input(os.path.join(APP_STATIC, u'line.txt'),inplace=1):
应该是
fileinput.input(os.path.join(APP_STATIC, u'line.txt'),inplace=1):
(您还需要import fileinput
)
你需要改变它,因为this.input
并不意味着任何对python的东西......它不知道this
是什么......
全局名称'this'未定义
另外,在开发
时,你应该真正使用app.run(debug=True)