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>&nbsp;</h5>
    <h5>情报入力</h5>
    <h5>&nbsp;</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 值的原因可能是以下几点:

  1. 前端代码中没有设置 model 输入框的 name 属性。
  2. 前端代码中 model 输入框的 name 属性拼写错误。
  3. 后端代码中获取 model 值的代码有误。

请检查您的代码并确保上述问题都没有出现。

优化建议

  1. 使用 form 标签的 enctype 属性来处理表单数据:form 标签的 enctype 属性设置为 multipart/form-data,以便能够处理文件上传等数据。
  2. 使用 input 标签的 value 属性来设置默认值: 可以为 input 标签设置 value 属性,以指定默认值。
  3. 使用 select 标签来选择选项: 如果选项是固定的,可以使用 select 标签来提供选项列表,这样可以更方便用户选择。
  4. 使用 label 标签来描述输入框: 使用 label 标签来描述输入框,可以让代码更易读,也更方便用户理解。
  5. 使用 placeholder 属性来提供提示信息: 使用 placeholder 属性来提供提示信息,可以让用户更方便地输入信息。
  6. 使用 CSS 来美化表单: 可以使用 CSS 来美化表单,使表单更美观。

希望这篇文章能够帮助您更好地理解 Python Flask 后端和前端交互的实现方式,并解决您遇到的问题。

Python Flask 添加打印机信息:后端代码和前端表单示例

原文地址: https://www.cveoy.top/t/topic/m3eW 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录