【发布时间】:2016-10-23 20:08:25
【问题描述】:
我是 Python 新手!
我有一个表单,我可以在其中读取和写入一切正常,替换在第一个输入中工作正常,但在我的第二个输入中不起作用。
例如,我的单词 1 = Toy,如果我将其更改为“house”,它会很好地覆盖我的 .txt,但如果我使用单词 2 = house,则不会发生任何事情。
这是我的代码烧瓶:
from flask import Flask,render_template,flash,request,redirect
import os
app = Flask(__name__)
from lines import word_one,word_two
@app.route('/', methods=['POST'])
def change_line():
error= 'Cambios exitosos.'
replace = word_one()
replacetwo = word_two()
try:
if request.method =="POST":
word = request.form ['word']
words = request.form ['words']
filedata= None
rem = None
with open('line.txt','r') as f:
filedata = f.read()
rem = f.read()
filedata = filedata.replace(replace , word + "\n" )
rem = rem.replace(replacetwo , words + "\n" )
with open('line.txt','w') as f:
f.write(filedata)
f.write(rem)
except BaseException as e:
print e
return render_template('line.html')
@app.route('/')
def showLine():
wordone = word_one()
wordtwo = word_two()
return render_template('line.html', wordone=wordone, wordtwo=wordtwo)
if __name__ == '__main__':
app.run(debug=True)
这是我的 .txt
wordone Toy
wordtwo house
这是我的 .html
<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">word 1 : </label>
<input type="text" class="form-control" name="word" value="{{ wordone }}">
</div>
<div class="col-sm-9">
<label class="col-sm-3 col-sm-3 control-label">word 2 : </label>
<input type="text" class="form-control" name="words" value="{{ wordtwo }}">
</div>
<input type="submit" value="Save Changes!">
</form>
由于单词 1 有效,我唯一的问题是单词 2..
这是我在客户端的输出:
【问题讨论】:
-
我不明白这里出了什么问题。输出应该如何?
-
如果我更改单词 2 输入没有任何反应,但如果我在单词 1 输入中执行相同操作,它会覆盖表单和我的 .txt
标签: python python-2.7 flask