2017-03-01 1 views
0

다음과 같은 형식이 있습니다. 세부 사항을 게시 할 때 엑셀 시트에 저장할 수 있어야합니다.플라스크에 넣을 수없는 방법

<div class="for" align="middle"> 
    <form action="/models" method="POST"> 
     <label for="fname">Customer Name</label></br> 
     <input type="text" id="Cname" name="Cname" placeholder="Your name.."></br> 

     <label for="cname">Customer Email id</label></br> 
     <input type="text" id="mailid" name="mailid" placeholder="Your email id.."></br> 

     <label for="cnumber">Customer Contact Number</label></br> 
     <input type="text" id="cnumber" name="cnumber" placeholder="Your phone number.."></br> 

     <label for="plan">When do you plan to buy ?</label></br> 
     <select id="plan" name="plan"> 
     <option value="Immediate">Immediate</option> 
     <option value="1-3 Months">1-3 Months</option> 
     <option value="4-6 Months">4-6 Months</option> 
     </select> 
     </br> 
     <label for="spn">Sales Person Name</label></br> 
     <input type="text" id="spn" name="spn" placeholder="Sales-person name.."></br> 

     <input type="submit" value="Submit"> 
    </form> 
    </div> 

내 플라스크 코드는 이것이다 :이 코드를 실행하면 가득 엑셀 시트를받지

@app.route('/cc' ,methods = ['POST', 'GET']) 
def cc(): 
    if request.method=='POST': 
     def data(): 
      wb = openpyxl.load_workbook(url_for('customer_info.xlsx')) 
      sheet = wb.active 
      sheet = wb.get_sheet_by_name('info') 
      print('hey') 
      sheet[A2]= request.form['Cname'] 
      sheet[A3]= request.form['mailid'] 
      print('hello') 
      sheet[A3]= request.form['cnumber'] 
      sheet[A4]= request.form['plan'] 
      sheet[A5]= request.form['spn'] 
      wb.save('customer_info.xlsx') 
    return render_template('cc.html') 


@app.route('/models') 
def models(): 
    return render_template('models.html') 

임.

답변

0

와 상호 작용하지 않습니다

이에 공통 경로를 변경

엑셀 시트.

@app.route('/models') 
def models(): 
    return render_template('models.html') 

난 당신이 /cc 대신 /models에 게시 할 생각합니다.

또한 cc 경로에서는 data이라는 함수를 정의하지만 해당 함수를 호출하지 않습니다. 해당 경로를 다음과 같이 변경할 수 있습니다.

@app.route('/cc' ,methods = ['POST', 'GET']) 
def cc(): 
    if request.method=='POST': 
     wb = openpyxl.load_workbook(url_for('customer_info.xlsx')) 
     sheet = wb.active 
     sheet = wb.get_sheet_by_name('info') 
     print('hey') 
     sheet[A2]= request.form['Cname'] 
     sheet[A3]= request.form['mailid'] 
     print('hello') 
     sheet[A3]= request.form['cnumber'] 
     sheet[A4]= request.form['plan'] 
     sheet[A5]= request.form['spn'] 
     wb.save('customer_info.xlsx') 
    return render_template('cc.html') 
0

터미널에 '안녕하세요'와 '안녕하세요'가 보이지 않는다고 가정합니다. 문제는 "데이터"기능을 정의했지만 실행하지 않는 것입니다. 양식이 방법으로 POST를 허용하지 않습니다 /models

<form action="/models" method="POST"> 

하지만 /models 경로에 게시되어

@app.route('/cc' ,methods = ['POST', 'GET']) 
def cc(): 
    if request.method=='POST': 
     def data(): 
      wb = openpyxl.load_workbook(url_for('customer_info.xlsx')) 
      sheet = wb.active 
      sheet = wb.get_sheet_by_name('info') 
      print('hey') 
      sheet[A2]= request.form['Cname'] 
      sheet[A3]= request.form['mailid'] 
      print('hello') 
      sheet[A3]= request.form['cnumber'] 
      sheet[A4]= request.form['plan'] 
      sheet[A5]= request.form['spn'] 
      wb.save('customer_info.xlsx') 
     data() 
    return render_template('cc.html') 
+0

변경되었지만 Excel 시트의 항목이 실행되고 있지 않습니다. – charlie

+0

@MattHealy의 답을 확인하십시오. 두 번째 경로에 게시 된 것을 확인하지 못했습니다. – Arjjuna

관련 문제