2016-10-23 4 views
-1

を複数の行を置き換えます!Pythonの - 私は、Pythonに新たなんだPythonのフラスコ内の

私はOK、すべてを読んで、書いて、フォーム、置き換えは、第1の入力で正常に動作しているが、それは私の第二の入力で働いていない持っています。私は「家」のためにそれを変更した場合たとえば

は、私は、私の言葉1 =玩具を持っている、それは非常によく私の.txtファイルを上書きしますが、私は私の言葉で2 =家をすれば、何も起こりません。

これは私のコードのフラスコである:これは私の.txtの

wordone Toy 
wordtwo 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) 

ワード1は、私の唯一の問題働いているように、これは私の.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> 

ですここに私のです...ワード2で

されますクライアントでの出力:

Here is my output

+1

ここで何が間違っているのか分かりません。出力はどのように表示されるべきですか? –

+0

私は単語を変更した場合は2入力何も起こりませんが、私はワード1入力で同じことを行う場合には、それが働いたフォームと私の.txtの –

答えて

1

あなたのコードでこれをやってみません:二度同じ内容を読み書きする

 with open('line.txt','r') as f: 
      filedata = f.read() 
      filedata = filedata.replace(replace , word + "\n") 
      filedata = filedata.replace(replacetwo , words + "\n") 

     with open('line.txt','w') as f: 
      f.write(filedata) 

必要はありません。

+0

を上書きします!どうもありがとう! –

関連する問題