2017-03-22 69 views
1

我正在編寫一個燒瓶應用程序,以便某人管理我的數據集。它應該在textarea中顯示一條推文,並且該人員在單選按鈕上選擇選項並提交它,並將其寫入文件中。然而,問題在於textarea中的推文顯示與寫入文件的推文顯示不同。如果在文本區域中顯示推文A,則即使該人評價推文A,也會將下一條推文即推文B寫入該文件A.發生了什麼問題?我的HTML模板和瓶代碼都低於:不正確的條目寫入文件

瓶:

from flask import Flask, render_template, request 
import csv 
app = Flask(__name__) 
with open('sqldata.csv', 'r') as f: 
     reader = csv.reader(f) 
     data = [row for row in reader] 
x = [] 
@app.route('/', methods=['GET','POST']) 
def index(): 
     datapoint = data[len(x)+1][2] 
     db={'Entry':datapoint} 
     if request.method == 'POST': 
      print request.form['Button1'] 
      but1 = request.form['Button1'] 
      but2 = request.form['Button2'] 
      print sent 
      but3 = request.form['Button3'] 
      with open('path/%s.csv' % but2, 'a') as f: 
       writer = csv.writer(f) 
       writer.writerows([(datapoint, but1)]) 
      with open('path/data.csv', 'a') as f: 
       writer = csv.writer(f) 
       writer.writerow([but3]) 
      x.append(len(x)) 
     return render_template('index.html', db=db) 
if __name__ == '__main__': 
     app.run(host, port,debug=True) 

HTML模板:

<html> 
    <head> Sentiment Analysis Dataset</head> 
    <style> 
    .scrollabletextbox { 
height:50px; 
width:200px; 
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; 
font-size: 82%; 
overflow:scroll; 
    } 
    </style> 
    <form method='POST'> 
      <b> Unclassified Text </b> 
      <textarea class='scrollabletextbox' name='Text' readonly> 
      {{db.Entry}} 
      </textarea> 
      <br> 
      <b> But2 </b> <br> 
      Positive:<input type='radio' name='Button2' value='1'><br> 
      Negative:<input type='radio' name = 'Button2' value='2'><br> 
      Noise:<input type='radio' name = 'Button2' value = '3'><br> 
      1<input type='radio' name = 'Button1' value='1'> 
      <input type='radio' name = 'Button1' value='2'> 
      <input type='radio' name = 'Button1' value='3'> 
      <input type='radio' name = 'Button1' value='4'> 
      <input type='radio' name = 'Button1' value='5'> 
      <input type='radio' name = 'Button1' value='6'> 
      <input type='radio' name = 'Button1' value='7'> 
      <input type='radio' name = 'Button1' value='8'> 
      <input type='radio' name = 'Button1' value='9'> 
      <input type='radio' name = 'Button1' value='10'>10<br> 
      <b>But3</b><br> 
      <input type='text' name='Button3'><br> 
      <input type='submit' value='Submit' name='Submit'> 
    </form> 
</html> 
+0

你的表格中沒有所謂的'Button1'或'Button2'或'Button3'元素...... – bernie

+0

我編輯它,對不起 – lordingtar

+0

沒問題。 'print but3'給你什麼? – bernie

回答

1

您可以使用值textarea的更新您的數據文件。請參閱下面測試的代碼:

from flask import Flask, render_template, request 
import csv, os 
import jinja2 

app = Flask(__name__) 

with open('sqldata.csv','r') as f: 
    reader = csv.reader(f) 
    data = [row for row in reader] 

x = [] 
@app.route('/', methods=['GET','POST']) 
def index(): 
    datapoint = data[len(x)][2] 
    db={'Entry':datapoint} 
    if request.method == 'POST': 
     but1 = request.form['Button1'] 
     but2 = request.form['Button2'] 
     but3 = request.form['Button3'] 
     with open('%s.csv' % but2,'a') as f: 
      writer = csv.writer(f) 
      writer.writerows([(request.form['Text'], but1)]) 
     with open('data.csv','a') as f: 
      writer = csv.writer(f) 
      writer.writerow([but3]) 
     x.append(len(x)) 
    return render_template('index.html',db=db) 

if __name__ == '__main__': 
    loader=jinja2.FileSystemLoader(os.path.join(os.path.dirname(__file__),'templates')) 
    app.run(debug=True) 

模板代碼:

<html> 
    <head> Sentiment Analysis Dataset</head> 
    <style> 
    .scrollabletextbox { 
height:50px; 
width:200px; 
font-family: Verdana, Tahoma, Arial, Helvetica, sans-serif; 
font-size: 82%; 
overflow:scroll; 
    } 
    </style> 
    <form method='POST'> 
      <b> Unclassified Text</b> 
      <textarea class='scrollabletextbox' name='Text'>{{db.Entry}}</textarea> 
      <br> 
      <b> But2 </b> <br> 
      Positive:<input type='radio' name='Button2' value='1'><br> 
      Negative:<input type='radio' name = 'Button2' value='2'><br> 
      Noise:<input type='radio' name = 'Button2' value = '3'><br> 
      1<input type='radio' name = 'Button1' value='1'> 
      <input type='radio' name = 'Button1' value='2'> 
      <input type='radio' name = 'Button1' value='3'> 
      <input type='radio' name = 'Button1' value='4'> 
      <input type='radio' name = 'Button1' value='5'> 
      <input type='radio' name = 'Button1' value='6'> 
      <input type='radio' name = 'Button1' value='7'> 
      <input type='radio' name = 'Button1' value='8'> 
      <input type='radio' name = 'Button1' value='9'> 
      <input type='radio' name = 'Button1' value='10'>10<br> 
      <b>But3</b><br> 
      <input type='text' name='Button3'><br> 
      <input type='submit' value='Submit' name='Submit'> 
    </form> 
</html>