2016-10-23 6 views
-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) 

이 하나가 작동 단어, 내 유일한 문제로서 내 .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

작동했습니다! 고마워요! –