Python Flask 添加打印机信息:后端代码和前端表单示例
Python Flask 添加打印机信息:后端代码和前端表单示例
本文将提供一个简单的示例,展示如何使用 Python Flask 框架来接收来自前端表单的打印机信息并将其存储到数据库中。
后端代码
from flask import Flask, render_template, request
import pymysql
app = Flask(__name__)
@app.route('/addprinter', methods=['GET', 'POST'])
def add_printer():
device_list = [] #打印机情报
if request.method == 'GET':
return render_template('addprinter.html')
#print(request.form)
device_id = request.form.get('device_id')
arr_data = request.form.get('arr_data')
device_sn = request.form.get('device_sn')
buy_dept = request.form.get('buy_dept')
catalog = request.form.get('catalog')
series = request.form.get('series')
model = request.form.get('model')
location = request.form.get('location')
location_detail = request.form.get('location_detail')
device_status = request.form.get('device_status')
stock_status = request.form.get('stock_status')
borrower = request.form.get('borrower')
borrow_data = request.form.get('borrow_data')
print('网页上返回arr_data:', arr_data, '网页上返回device_sn:', device_sn, buy_dept, catalog, model) # test输出
#连结数据库
conn = pymysql.connect(host='localhost', user='root', password='1111', db='demo')
cursor = conn.cursor()
# 使用 execute() 方法执行 SQL 查询
sql = 'INSERT INTO devices (device_id, arr_data,device_sn,buy_dept, catalog, series, model, location, ' \
'location_detail, device_status, stock_status, borrower, borrow_data) ' \
'VALUES(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s)'
cursor.execute(sql, [device_id, arr_data, device_sn, buy_dept, catalog, series, model, location, location_detail, device_status, stock_status, borrower, borrow_data])
conn.commit()
# 关闭连接
cursor.close()
conn.close()
return 'xxx'
if __name__ == '__main__':
app.run()
前端代码
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='UTF-8'>
<title>Title</title>
</head>
<body>
<!--测试已经成功入库的代码
<form method='post' action='/addprinter'>
<p>情报入力</p>
<p align='right'>
<input type='submit' name='save' id='save' value='保存'>
</p>
<p>序 号 <input type='text' name='device_id'></p>
<p>到达日期 <input type='date' name='arr_data'></p>
<p>番 号<input type='text' name='device_sn'></p>
<p>购入部门<input type='text' name='buy_dept'></p>
</form> -->
<form name='form3' method='post' action='/addprinter'>
<h5> </h5>
<h5>情报入力</h5>
<h5> </h5>
<p style='float:right'>
<input class='btn btn-primary' type='submit' name='save' id='save' value='保存'>
</p>
<p>机器 ID <input type='text' name='device_id'></p>
<p>到达日期 <input type='date' name='arr_data'></p>
<p>序列 号 <input type='text' name='device_sn'></p>
<p>购入部门 <input type='text' name='buy_dept'></p>
<p>分 类 <input type='radio' name='catalog' value='喷墨机'>
<input type='radio' name='catalog' value='激光机'>
<input type='radio' name='catalog' value='扫描仪'>
</p>
<p>系 类 <input type='text' name='series'></p>
<p>型 号 <input type='text' name='model'></p>
<p>放置场所 <input type='text' name='location'></p>
<p>详细场所 <input type='text' name='location_detail'></p>
<p>机器状态 <input type='radio' name='device_status' value='正常'>
<input type='radio' name='device_status' value='已损坏'>
</p>
<p>在库状态 <input type='radio' name='stock_status' value='在库'>
<input type='radio' name='stock_status' value='借出'>
<input type='radio' name='stock_status' value='废弃'>
</p>
</p>
<p>借用 人 <input type='text' name='borrower'></p>
<p>借用日期 <input type='date' name='borrow_data'></p>
</form>
</body>
</html>
问题分析
您可能无法获取到 model 值的原因可能是以下几点:
- 前端代码中没有设置
model输入框的name属性。 - 前端代码中
model输入框的name属性拼写错误。 - 后端代码中获取
model值的代码有误。
请检查您的代码并确保上述问题都没有出现。
优化建议
- 使用
form标签的enctype属性来处理表单数据: 将form标签的enctype属性设置为multipart/form-data,以便能够处理文件上传等数据。 - 使用
input标签的value属性来设置默认值: 可以为input标签设置value属性,以指定默认值。 - 使用
select标签来选择选项: 如果选项是固定的,可以使用select标签来提供选项列表,这样可以更方便用户选择。 - 使用
label标签来描述输入框: 使用label标签来描述输入框,可以让代码更易读,也更方便用户理解。 - 使用
placeholder属性来提供提示信息: 使用placeholder属性来提供提示信息,可以让用户更方便地输入信息。 - 使用 CSS 来美化表单: 可以使用 CSS 来美化表单,使表单更美观。
希望这篇文章能够帮助您更好地理解 Python Flask 后端和前端交互的实现方式,并解决您遇到的问题。
原文地址: https://www.cveoy.top/t/topic/m3eW 著作权归作者所有。请勿转载和采集!