app.py 7.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. from flask import Flask, render_template,request,url_for, redirect
  2. import pymysql
  3. import pandas as pd
  4. import csv
  5. import time
  6. app = Flask(__name__)
  7. conn = pymysql.connect(
  8. host='127.0.0.1',
  9. user='root',
  10. password='g53743001',
  11. db='erp',
  12. charset='utf8'
  13. )
  14. @app.route('/')
  15. def index():
  16. return render_template('index.html')
  17. #新增資料
  18. @app.route('/add_Nu',methods=['POST', 'GET'])
  19. def form():
  20. cur = conn.cursor()
  21. sql2 = "SELECT * FROM 會計科目表"
  22. cur.execute(sql2)
  23. 會計科目 = cur.fetchall()
  24. sql3 = "SELECT * FROM 類別表"
  25. cur.execute(sql3)
  26. 類別 = cur.fetchall()
  27. sql4 = "SELECT * FROM 供應商"
  28. cur.execute(sql4)
  29. 供應商 = cur.fetchall()
  30. sql5 = "SELECT 名稱 FROM 零件表"
  31. cur.execute(sql5)
  32. 名稱 = cur.fetchall()
  33. if request.method == 'POST':
  34. 會計科目 = request.form['會計科目']
  35. 類別 = request.form['類別']
  36. 供應商 = request.form['供應商']
  37. cur = conn.cursor()
  38. sql6 = "select 流水號 from 零件表 WHERE"
  39. sql7 = 'order by 流水號 desc limit 1'
  40. if 會計科目 != '' and 類別 != '':
  41. sql6 += ' 會計科目 = \'' + 會計科目 + '\' ' 'AND' ' 類別 = \'' + 類別 +'\''
  42. data = sql6 + sql7
  43. #"select 流水號 from 零件表 WHERE `會計科目` = '04' AND `類別` = '01' order by 流水號 desc limit 1"
  44. print(data)
  45. cur.execute(data)
  46. 流水號 = cur.fetchone()
  47. print('查詢後流水號:',流水號)
  48. if 流水號 == None:
  49. 流水號 = int('0000')+1
  50. 流水號 = '{0:04}'.format(流水號)
  51. print('+1後流水號:',流水號)
  52. else :
  53. 流水號 = int(流水號[0]) + 1
  54. print('+1後流水號:',流水號)
  55. 流水號 = '{0:04}'.format(流水號)
  56. 內部料號 = str(會計科目)+str(類別)+str(流水號)+str(供應商)
  57. print(內部料號)
  58. 名稱 = request.form['名稱']
  59. 原廠料號 = request.form['原廠料號']
  60. 尺寸 = request.form['尺寸']
  61. 封裝材質 = request.form['封裝/材質']
  62. 工作電壓 = request.form['工作電壓']
  63. 工作電流 = request.form['工作電流']
  64. 功率 = request.form['功率']
  65. 最大電流 = request.form['最大電流']
  66. 工作溫度 = request.form['工作溫度']
  67. print(名稱,原廠料號,尺寸,封裝材質,工作電壓,工作電流,功率,最大電流,工作溫度)
  68. print(內部料號)
  69. if 會計科目 != '' and 類別 != '' and 流水號 !='' and 供應商 != '' and 名稱 !='':
  70. cur = conn.cursor()
  71. cur.execute(' INSERT INTO 零件表 VALUES(%s,%s,%s,%s,%s,%s)'
  72. ,(內部料號,會計科目, 類別, 流水號,供應商, 名稱))
  73. conn.commit()
  74. cur.close()
  75. else:
  76. print('都沒輸入,直接略過')
  77. pass
  78. if 名稱 != ''and 原廠料號 != ''and 尺寸 != '' and 封裝材質 !='' and 工作電壓 != '' and 工作電流 !=''and 功率 !='' and 最大電流 !='' and 工作溫度 !='':
  79. cur = conn.cursor()
  80. sql1 = "INSERT INTO 規格表 VALUES('%s','%s','%s','%s','%s','%s','%s','%s','%s','%s')"%(內部料號,名稱,原廠料號,尺寸, 封裝材質, 工作電壓, 工作電流, 功率, 最大電流, 工作溫度)
  81. cur.execute(sql1)
  82. conn.commit()
  83. cur.close()
  84. else:
  85. print('都沒輸入,直接略過')
  86. pass
  87. return render_template('update.html',**locals())
  88. return render_template('update.html',**locals())
  89. @app.route('/bom/')
  90. def bom():
  91. return render_template('bom.html')
  92. #改資料
  93. @app.route('/modify/',methods=['POST', 'GET'])
  94. def modify():
  95. cur = conn.cursor()
  96. sql = "SELECT 內部料號,名稱 FROM 規格表"
  97. cur.execute(sql)
  98. 內部料號 = cur.fetchall()
  99. #內部料號 = [g for g in 內部料號]
  100. if request.method == 'POST':
  101. 內部料號 = request.form['內部料號']
  102. 名稱 = request.form['名稱']
  103. 原廠料號 = request.form['原廠料號']
  104. 尺寸 = request.form['尺寸']
  105. 封裝材質 = request.form['封裝/材質']
  106. 工作電壓 = request.form['工作電壓']
  107. 工作電流 = request.form['工作電流']
  108. 功率 = request.form['功率']
  109. 最大電流 = request.form['最大電流']
  110. 工作溫度 = request.form['工作溫度']
  111. if 內部料號 != '' and 名稱 != ''and 原廠料號 != ''and 尺寸 != '' and 封裝材質 !='' and 工作電壓 != '' and 工作電流 !=''and 功率 !='' and 最大電流 !='' and 工作溫度 !='':
  112. cur = conn.cursor()
  113. sql = "update 規格表 set 名稱='%s',原廠料號='%s',尺寸='%s',`封裝/材質`='%s',工作電壓='%s',工作電流='%s',功率='%s',最大電流='%s',工作溫度='%s'"" where 內部料號='%s'"\
  114. %(名稱,原廠料號,尺寸, 封裝材質, 工作電壓, 工作電流, 功率, 最大電流, 工作溫度, 內部料號[2:13])
  115. cur.execute(sql)
  116. conn.commit()
  117. cur.close()
  118. else:
  119. print('都沒輸入,直接略過')
  120. pass
  121. return render_template('index.html')
  122. return render_template('modify.html',內部料號=內部料號)
  123. #查資料
  124. @app.route('/check/', methods=['GET', 'POST'])
  125. def check():
  126. cur = conn.cursor()
  127. # 獲取欄位名稱
  128. sql = "select 內部料號,名稱 from 規格表 "
  129. cur.execute(sql)
  130. labels = cur.fetchall()
  131. print(labels)
  132. labels = [g for g in labels]
  133. if request.method == 'POST':
  134. sql = "SHOW FIELDS FROM `規格表`"
  135. cur.execute(sql)
  136. labels = cur.fetchall()
  137. labels = [g[0] for g in labels]
  138. global t
  139. t = request.values['Test']
  140. #t = t[2:13]
  141. print(t[2:13])
  142. cur = conn.cursor()
  143. # 獲取欄位資料
  144. cur.execute("""select * from `規格表` WHERE 內部料號 = {}""".format(repr(t[2:13])))
  145. content = cur.fetchall()
  146. print(content)
  147. return render_template('check1.html', labels=labels,content=content)
  148. return render_template('check.html', labels=labels)
  149. #刪除資料
  150. @app.route('/del_data/', methods=['GET', 'POST'])
  151. def del_data():
  152. if request.method == 'POST':
  153. print('內部料號:',t[2:13])
  154. cur = conn.cursor()
  155. sql1 = "DELETE FROM `規格表` WHERE `內部料號` = {}".format(repr(t[2:13]))
  156. cur.execute(sql1)
  157. cur.close()
  158. print(sql1)
  159. cur = conn.cursor()
  160. sql2 = "DELETE FROM `零件表` WHERE `內部料號` = {}".format(repr(t[2:13]))
  161. cur.execute(sql2)
  162. cur.close()
  163. print(sql2)
  164. return render_template('index.html')
  165. if __name__ == '__main__':
  166. app.run(debug=True,port=5050)