from flask import Flask, render_template,request,url_for, redirect import pymysql import pandas as pd import csv import time app = Flask(__name__) conn = pymysql.connect( host='127.0.0.1', user='root', password='g53743001', db='erp', charset='utf8' ) @app.route('/') def index(): return render_template('index.html') #新增資料 @app.route('/add_Nu',methods=['POST', 'GET']) def form(): cur = conn.cursor() sql2 = "SELECT * FROM 會計科目表" cur.execute(sql2) 會計科目 = cur.fetchall() sql3 = "SELECT * FROM 類別表" cur.execute(sql3) 類別 = cur.fetchall() sql4 = "SELECT * FROM 供應商" cur.execute(sql4) 供應商 = cur.fetchall() sql5 = "SELECT 名稱 FROM 零件表" cur.execute(sql5) 名稱 = cur.fetchall() if request.method == 'POST': 會計科目 = request.form['會計科目'] 類別 = request.form['類別'] 供應商 = request.form['供應商'] cur = conn.cursor() sql6 = "select 流水號 from 零件表 WHERE" sql7 = 'order by 流水號 desc limit 1' if 會計科目 != '' and 類別 != '': sql6 += ' 會計科目 = \'' + 會計科目 + '\' ' 'AND' ' 類別 = \'' + 類別 +'\'' data = sql6 + sql7 #"select 流水號 from 零件表 WHERE `會計科目` = '04' AND `類別` = '01' order by 流水號 desc limit 1" print(data) cur.execute(data) 流水號 = cur.fetchone() print('查詢後流水號:',流水號) if 流水號 == None: 流水號 = int('0000')+1 流水號 = '{0:04}'.format(流水號) print('+1後流水號:',流水號) else : 流水號 = int(流水號[0]) + 1 print('+1後流水號:',流水號) 流水號 = '{0:04}'.format(流水號) 內部料號 = str(會計科目)+str(類別)+str(流水號)+str(供應商) print(內部料號) 名稱 = request.form['名稱'] 原廠料號 = request.form['原廠料號'] 尺寸 = request.form['尺寸'] 封裝材質 = request.form['封裝/材質'] 工作電壓 = request.form['工作電壓'] 工作電流 = request.form['工作電流'] 功率 = request.form['功率'] 最大電流 = request.form['最大電流'] 工作溫度 = request.form['工作溫度'] print(名稱,原廠料號,尺寸,封裝材質,工作電壓,工作電流,功率,最大電流,工作溫度) print(內部料號) if 會計科目 != '' and 類別 != '' and 流水號 !='' and 供應商 != '' and 名稱 !='': cur = conn.cursor() cur.execute(' INSERT INTO 零件表 VALUES(%s,%s,%s,%s,%s,%s)' ,(內部料號,會計科目, 類別, 流水號,供應商, 名稱)) conn.commit() cur.close() else: print('都沒輸入,直接略過') pass if 名稱 != ''and 原廠料號 != ''and 尺寸 != '' and 封裝材質 !='' and 工作電壓 != '' and 工作電流 !=''and 功率 !='' and 最大電流 !='' and 工作溫度 !='': cur = conn.cursor() sql1 = "INSERT INTO 規格表 VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"%(內部料號,名稱,原廠料號,尺寸, 封裝材質, 工作電壓, 工作電流, 功率, 最大電流, 工作溫度) cur.execute(sql1) conn.commit() cur.close() else: print('都沒輸入,直接略過') pass return render_template('update.html',**locals()) return render_template('update.html',**locals()) @app.route('/bom/') def bom(): return render_template('bom.html') #改資料 @app.route('/modify/',methods=['POST', 'GET']) def modify(): cur = conn.cursor() sql = "SELECT 內部料號,名稱 FROM 規格表" cur.execute(sql) 內部料號 = cur.fetchall() #內部料號 = [g for g in 內部料號] if request.method == 'POST': 內部料號 = request.form['內部料號'] 名稱 = request.form['名稱'] 原廠料號 = request.form['原廠料號'] 尺寸 = request.form['尺寸'] 封裝材質 = request.form['封裝/材質'] 工作電壓 = request.form['工作電壓'] 工作電流 = request.form['工作電流'] 功率 = request.form['功率'] 最大電流 = request.form['最大電流'] 工作溫度 = request.form['工作溫度'] if 內部料號 != '' and 名稱 != ''and 原廠料號 != ''and 尺寸 != '' and 封裝材質 !='' and 工作電壓 != '' and 工作電流 !=''and 功率 !='' and 最大電流 !='' and 工作溫度 !='': cur = conn.cursor() sql = "update 規格表 set 名稱='%s',原廠料號='%s',尺寸='%s',`封裝/材質`='%s',工作電壓='%s',工作電流='%s',功率='%s',最大電流='%s',工作溫度='%s'"" where 內部料號='%s'"\ %(名稱,原廠料號,尺寸, 封裝材質, 工作電壓, 工作電流, 功率, 最大電流, 工作溫度, 內部料號[2:13]) cur.execute(sql) conn.commit() cur.close() else: print('都沒輸入,直接略過') pass return render_template('index.html') return render_template('modify.html',內部料號=內部料號) #查資料 @app.route('/check/', methods=['GET', 'POST']) def check(): cur = conn.cursor() # 獲取欄位名稱 sql = "select 內部料號,名稱 from 規格表 " cur.execute(sql) labels = cur.fetchall() print(labels) labels = [g for g in labels] if request.method == 'POST': sql = "SHOW FIELDS FROM `規格表`" cur.execute(sql) labels = cur.fetchall() labels = [g[0] for g in labels] global t t = request.values['Test'] #t = t[2:13] print(t[2:13]) cur = conn.cursor() # 獲取欄位資料 cur.execute("""select * from `規格表` WHERE 內部料號 = {}""".format(repr(t[2:13]))) content = cur.fetchall() print(content) return render_template('check1.html', labels=labels,content=content) return render_template('check.html', labels=labels) #刪除資料 @app.route('/del_data/', methods=['GET', 'POST']) def del_data(): if request.method == 'POST': print('內部料號:',t[2:13]) cur = conn.cursor() sql1 = "DELETE FROM `規格表` WHERE `內部料號` = {}".format(repr(t[2:13])) cur.execute(sql1) cur.close() print(sql1) cur = conn.cursor() sql2 = "DELETE FROM `零件表` WHERE `內部料號` = {}".format(repr(t[2:13])) cur.execute(sql2) cur.close() print(sql2) return render_template('index.html') if __name__ == '__main__': app.run(debug=True,port=5050)