[ปัญหา] คลิกปุ่มแล้วขึ้น Error ค่ะ
โพสต์แล้ว: 22/12/2017 11:13 am
ตอนนี้ได้ทำให้ sql ทั้งหมดอยู่ใน function ที่ชื่อว่า search จากตอนแรก sql ที่เป็นตัวดึง name จะอยู่ฟังก์ชั่น search และ sql อื่นๆอยูฟังก์ชั่นที่ชื่อว่า payslippdf บนโค้ดไม่มี Error ใดๆเลยค่ะ แต่พอคลิกปุ่ม Print ก็ขึ้น Error ตามด้านล่างเลยค่ะ
Error ที่ออกมา
โค้ด Pyrhon ที่ใช้ค่ะ
โค้ด html ค่ะ
Error ที่ออกมา
โค้ด: เลือกทั้งหมด
Bad Request
The browser (or proxy) sent a request that this server could not understand.
โค้ด: เลือกทั้งหมด
@app.route('/search',methods=['POST'])
def search():
fname = request.form['name']
global comp, money, id, row
try:
con = psycopg2.connect(host='localhost', database='testppp', user='postgres', password='')
cur = con.cursor()
cur.execute('SELECT version()')
sql = "SELECT id, name, date_to FROM hr_payslip WHERE name='%s'" %fname
sql = sql.encode('utf-8')
try:
cur.execute(sql)
con.commit()
row = cur.fetchall()
for line1, line2, line3 in row:
id = line1[0]
name = line2[1]
date = line3[2]
print(id)
except:
con.rollback()
sql1 = "SELECT name FROM res_company"
try:
cur.execute(sql1)
con.commit()
comp = cur.fetchone()
print(comp)
except:
con.rollback()
sql2 = "SELECT name,amount FROM hr_payslip_line WHERE slip_id ='%s'"%id
try:
cur.execute(sql2)
con.commit()
money = cur.fetchall()
#print(money)
c = canvas.Canvas("payslip.pdf")
c.setFont("THSarabunNew", 18)
date = time.localtime()
a = time.strftime('%d/%m/%Y', date)
f1 = Frame(inch, 6.25 * inch, 6.5 * inch, 4 * inch, showBoundary=1) # ช่องใหญ่สุด
#--------หัวตาราง-------------------------------------------------------------------------
c.drawString(inch, 11 * inch, "ใบแจ้งเงินเดือน (Payslip)")
c.drawString(inch, 10.75 * inch, "แผนก/Dep.")
c.drawString(inch, 10.5 * inch, "ชื่อสกุล/Emp.")
c.drawString(3.25 * inch, 11 * inch, comp[0])
c.drawString(3.25 * inch, 10.75 * inch, "***")
c.drawString(3.25 * inch, 10.5 * inch, "***")
c.drawImage("md.jpg", 5.5 * inch, 11 * inch, width=1.75 * inch, height=0.5 * inch)
c.drawString(5.5 * inch, 10.75 * inch, "ประจำงวด(PERIOD)1")
c.drawString(5.5 * inch, 10.5 * inch, "วันที่จ่าย(DATE)")
c.drawString(6.7 * inch, 10.5 * inch, a)
c.drawString(1.25 * inch, 10 * inch, "รายได้(Income)")
c.drawString(3.5 * inch, 10 * inch, "รายการหัก(Dediction)")
c.drawString(5.6 * inch, 9.6 * inch, "รวมเงินได้")
c.drawString(5.6 * inch, 9.3 * inch, "รวมเงินหัก")
c.drawString(5.6 * inch, 6.64 * inch, "ลงชื่อ/Sing __________")
c.drawString(5.6 * inch, 6.34 * inch, "วันที่/Date __________")
# --------ตัวตาราง-------------------------------------------------------------------------
for row2 in money:
print(row2[0])
print(row2[1])
c.drawString(1.1 * inch, 9.6 * inch, row2[0])
#c.drawString(2.75 * inch, 9.6 * inch, row[1])
f1.addFromList(story, c)
f2 = Frame(inch, 6.25 * inch, 4.5 * inch, 4 * inch, showBoundary=1) # ช่องรวมเงิน
f2.addFromList(story, c)
f3 = Frame(inch, 6.25 * inch, 4.5 * inch, 3.65 * inch, showBoundary=0.5) # ช่องรายการหัก
f3.addFromList(story, c)
f4 = Frame(inch, 6.25 * inch, 2.25 * inch, 4 * inch, showBoundary=0.5) # ช่องรายได้
f4.addFromList(story, c)
f5 = Frame(inch, 6.25 * inch, 4.5 * inch, 0.6 * inch, showBoundary=0.5) # ช่องล่างซ้าย
f5.addFromList(story, c)
f6 = Frame(inch, 6.25 * inch, 1.4 * inch, 0.6 * inch, showBoundary=1) # ช่องล่างขวา
f6.addFromList(story, c)
f7 = Frame(inch, 6.25 * inch, 4.5 * inch, 0.3 * inch, showBoundary=0.5) # ช่องล่างสุด
f7.addFromList(story, c)
c.showFullScreen0()
c.showPage()
c.save()
except:
con.rollback()
return render_template("show.html", rows=row)
except psycopg2.DatabaseError:
print('Error %s' % psycopg2.DatabaseError)
if __name__ == '__main__':
โค้ด: เลือกทั้งหมด
<meta charset="UTF-8">
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>Employees Data</title>
</head>
<body>
<form action = "/search" method = "POST">
<table border="1" 1cellspacing="1" width="80%" height="5" align="center">
<thead>
<td align="center">ID</td>
<td align="center">Employee ID</td>
<td align="center">Name</td>
<td align="center">Date</td>
<td align="center">Print</td>
</thead>
<tbody>
{% for row in rows %}
<h2 align="center">Employees Data</h2>
<tr>
<td align="center">{{ row[0] }}</td>
<td>{{ row[11] }}</td>
<td>{{ row[12] }}</td>
<td>{{ row[9] }}</td>
<td align="center"><input type="submit" value="print" /></td>
</tr>
{% endfor %}
</tbody>
</table>
</form>
</body>
</html>