|
|

楼主 |
发表于 2024-2-5 23:02:28
|
显示全部楼层
wxdb.py
- # -*- coding: utf-8 -*-
- import sqlite3
- from json import dump
- from flask import redirect, url_for, request, flash, render_template, jsonify
- # 自定义库文件
- # from uiform import *
- from wxconfig import app, db
- # 创建一个表单类执行记录
- # class JsForm(FlaskForm):
- # id = IntegerField('编号')
- # fid = StringField('识别号')
- # name = StringField('姓名')
- # card = StringField('卡号')
- # s = StringField('学生')
- # t = StringField('老师')
- # h = StringField('家长')
- # log = StringField('备注')
- # submit = SubmitField('保存')
- # 行车记录20220816
- class js(db.Model):
- id = db.Column(db.Integer, primary_key=True)
- fid = db.Column(db.String(10))
- card = db.Column(db.String(80))
- name = db.Column(db.String(80))
- s = db.Column(db.String(120))
- t = db.Column(db.String(120))
- h = db.Column(db.String(120))
- log = db.Column(db.String(200))
- # # 初始化数据库数据========================================================================
- # @app.before_first_request
- # def before_first_request_func():
- # initdb()
- # 初始化数据库
- @app.route('/init')
- @app.route('/initdb')
- def initdb():
- db.drop_all()
- db.create_all()
- for i in range(100): #
- u = js(
- name=f'37梦想微信公众号 {i + 1}',
- fid=f'{i + 1}',
- card=f'{i + 1}',
- s=f'学生{i + 1}',
- t=f'老师{i + 1}',
- h=f'家长{i + 1}',
- log=f'备注{i + 1}'
- )
- db.session.add(u)
- db.session.commit()
- return "数据库初始化完成"
- # return redirect(url_for("js_index"))
- # 数据列表--------------------分页数据--------------------------------------------------
- @app.route('/')
- def js_index():
- page = request.args.get('page', 1, type=int)
- print(page)
- pagination = js.query.paginate(page=page, per_page=10)
- # pagination = AIRun.query.paginate()
- aiuser = pagination.items
- flash("欢迎来到***37创客教育***开源数据接口界面!")
- titles = [('id', '编号ID'), ('fid', '编号'), ('name', '名字'), ('card', '卡号'), ('s', '学生'), ('t', '老师'),
- ('h', '家长'), ('log', '备注'), ] # 自定义标题
- # return titles
- return render_template('js_list.html', messages=aiuser, pagination=pagination, titles=titles, Message=js,title='37创客教育:简便数据API平台')
- # 路由指向与函数进行绑定处理
- # 编辑数据----------------------------------------------------------------------
- @app.route('/jsedit/<id>', methods=['GET', 'POST'])
- def edit_js(id):
- # 第一步:定义表单和获取数据
- form = JsForm()
- aiuser = js.query.get(id)
- # 第三步:点击保存数据
- if form.validate_on_submit():
- # 获取页面数据到数据对象模型
- aiuser.card = form.card.data
- aiuser.fid = form.fid.data
- aiuser.name = form.name.data
- aiuser.s = form.s.data
- aiuser.t = form.t.data
- aiuser.h = form.h.data
- aiuser.log = form.log.data
- db.session.commit() # 提交保存数据
- flash("用户信息已经更新!") # 提示数据操作状态
- return redirect(url_for("js_index")) # 定向到列表函数页面
- # 第二步:读取数据显示处理
- # 把数据发送到页面表单中
- form.fid.data = aiuser.fid
- form.name.data = aiuser.name
- form.card.data = aiuser.card
- form.log.data = aiuser.log
- form.id.data = aiuser.id
- form.s.data = aiuser.s
- form.t.data = aiuser.t
- form.h.data = aiuser.h
- # 提示操作情况
- flash("用户信息读取完成!")
- # 数据显示页面渲染
- return render_template('js_edit.html', form=form, title='编辑')
- # 查看数据----------------------------------------------------------------------
- @app.route('/jsview/<id>', methods=['GET', 'POST'])
- def view_js(id):
- aiuser = js.query.get(id)
- form = JsForm()
- form.fid.data = aiuser.fid
- form.name.data = aiuser.name
- form.card.data = aiuser.card
- form.log.data = aiuser.log
- form.id.data = aiuser.id
- form.s.data = aiuser.s
- form.t.data = aiuser.t
- form.h.data = aiuser.h
- if form.validate_on_submit():
- return redirect(url_for("js_index"))
- if aiuser:
- return render_template('js_View.html', form=form, message=aiuser)
- return f'没有对应数据 {id} 存在. 返回 <a href="/ai">table</a>.'
- # 删除数据----------------------------------------------------------------------
- @app.route('/jsdelete/<id>', methods=['GET', 'POST'])
- def delete_js(id):
- aiuser = js.query.get(id)
- flash(f'编号: {id} --{aiuser.name}-----{aiuser.log}-----的用户数据删除完成.')
- if aiuser:
- db.session.delete(aiuser)
- db.session.commit()
- return redirect(url_for("js_index"))
- return f'提示: {id} 数据不存在无法删除. 返回 <a href="/ai">表格</a>.'
- # 获取编号数据:返回用户名和邮箱----------------------------------------------------------------------
- @app.route('/getjs/<id>', methods=['GET'])
- def getjs(id):
- aiuser = js.query.get(id)
- if aiuser:
- return aiuser.name + '-' + aiuser.card + '-' + aiuser.s + '-' + aiuser.t + '-' + aiuser.h + '-' + aiuser.log
- return f'编号:{id} 数据不存在.'
- # 获取编号数据:返回用户名和邮箱----------------------------------------------------------------------
- @app.route('/cxjs/<id>', methods=['GET'])
- def cxjs(id):
- conn = sqlite3.connect('instance/wtdb.db')
- cursor = conn.cursor()
- # cursor.execute("select * from js where name like ? or fid like ? or card like ?", ('%' + id + '%', '%' + id + '%', '%' + id + '%'))
- cursor.execute("select * from js where name like ? or fid = ? or card = ?",
- ('%' + id + '%', id, id))
- res = cursor.fetchall()
- conn.close()
- print(res)
- if res:
- res_list = [{'编号': row[0], '人脸': row[1], '卡号': row[2], '名字': row[3], '学生': row[4], '老师': row[5],
- '家长': row[6], '备注': row[7]} for row in res]
- return jsonify(res_list)
- return f'编号:{id} 数据不存在.'
- # 获取编号数据:返回用户名和邮箱----------------------------------------------------------------------
- @app.route('/jsxs/<id>/<n>', methods=['GET'])
- def jsxx(id):
- conn = sqlite3.connect('instance/wtdb.db')
- cursor = conn.cursor()
- cursor.execute("select * from js where name like ? or fid like ? or card like ?",
- ('%' + id + '%', '%' + id + '%', '%' + id + '%'))
- res = cursor.fetchall()
- conn.close()
- print(res)
- if res:
- res_list = [{'编号': row[0], '人脸': row[1], '卡号': row[2], '名字': row[3], '学生': row[4], '老师': row[5],
- '家长': row[6], '备注': row[7]} for row in res]
- return jsonify(res_list)
- return f'编号:{id} 数据不存在.'
- # 获取编号数据:返回用户名和邮箱----------------------------------------------------------------------
- @app.route('/getjsu/<id>/<fh>', methods=['GET'])
- def getjsu(id, fh):
- aiuser = js.query.get(id)
- if aiuser:
- return str(aiuser.id) + fh + str(
- aiuser.fid) + fh + aiuser.name + fh + aiuser.card + fh + aiuser.s + fh + aiuser.t + fh + aiuser.h + fh + aiuser.log
- return f'编号:{id} 数据不存在.'
- # 删除数据:根据编号删除,返回----------------------------------------------------------------------
- @app.route('/deljs/<id>', methods=['GET', 'POST'])
- def deljs(id):
- aiuser = js.query.get(id)
- if aiuser:
- db.session.delete(aiuser)
- db.session.commit()
- return f'删除数据编号: {id} 完成'
- return f'编号:{id} 数据不存在.'
- # 增加和编辑----------------------------------------------------------------------
- @app.route('/aejs/<id>/<name>/<fid>/<card>/<s>/<t>/<h>/<log>')
- def aejs(id, name, fid, card, s, t, h, log):
- # 第一步:定义数据模型和获取数据
- aiuser = js.query.get(id)
- # 第三步:点击保存数据
- if aiuser:
- # 获取页面数据到数据对象模型
- aiuser.name = name
- aiuser.fid = fid
- aiuser.card = card
- aiuser.s = s
- aiuser.t = t
- aiuser.h = h
- aiuser.log = log
- db.session.commit() # 提交保存数据
- return f"{id}数据修改完成"
- else:
- user = js(id=id, name=name, fid=fid, card=card, s=s, t=t, h=h, log=log)
- db.session.add(user)
- db.session.commit() # 提交保存数据
- return f"{id}数据新增完成!"
- # return f"{id}数据不存在!"
- # 增加和编辑----------------------------------------------------------------------
- @app.route('/mjs/<id>/<xx>/<name>')
- def mjs(id, xx, name):
- # 第一步:定义数据模型和获取数据
- aiuser = js.query.get(id)
- # 第三步:点击保存数据
- if (xx == '编号'):
- aiuser.fid = name
- elif (xx == '名字'):
- aiuser.name = name
- elif (xx == '卡号'):
- aiuser.card = name
- elif (xx == '老师'):
- aiuser.t = name
- elif (xx == '学生'):
- aiuser.s = name
- elif (xx == '家长'):
- aiuser.h = name
- else:
- aiuser.s = name
- aiuser.t = name
- aiuser.h = name
- aiuser.log = name
- db.session.commit() # 提交保存数据
- return f"{id}数据修改完成"
- #
- # # 新增数据----------------------------------------------------------------------
- # @app.route('/jsnew', methods=['GET', 'POST'])
- # def new_js():
- # form = JsForm()
- # # aiuser = js()
- # if form.validate_on_submit():
- # fid = form.fid.data
- # card = form.card.data
- # name = form.name.data
- # s = form.s.data
- # t = form.t.data
- # h = form.h.data
- # log = form.log.data
- # id = form.id.data
- # user = js(id=id, log=log, name=name, card=card, s=s, t=t, h=h)
- # db.session.add(user)
- # db.session.commit()
- # flash("你的信息已经保存!")
- # return redirect(url_for("js_index"))
- # return render_template('js_new.html', form=form, title='新增')
- #
- #
- # # 路由指向与函数进行绑定处理
- # # 编辑数据----------------------------------------------------------------------
- # @app.route('/jsedit/<id>', methods=['GET', 'POST'])
- # def edit_js(id):
- # # 第一步:定义表单和获取数据
- # form = JsForm()
- # aiuser = js.query.get(id)
- # # 第三步:点击保存数据
- # if form.validate_on_submit():
- # # 获取页面数据到数据对象模型
- # aiuser.card = form.card.data
- # aiuser.fid = form.fid.data
- # aiuser.name = form.name.data
- # aiuser.s = form.s.data
- # aiuser.t = form.t.data
- # aiuser.h = form.h.data
- # aiuser.log = form.log.data
- # db.session.commit() # 提交保存数据
- # flash("用户信息已经更新!") # 提示数据操作状态
- # return redirect(url_for("js_index")) # 定向到列表函数页面
- # # 第二步:读取数据显示处理
- # # 把数据发送到页面表单中
- # form.fid.data = aiuser.fid
- # form.name.data = aiuser.name
- # form.card.data = aiuser.card
- # form.log.data = aiuser.log
- # form.id.data = aiuser.id
- # form.s.data = aiuser.s
- # form.t.data = aiuser.t
- # form.h.data = aiuser.h
- # # 提示操作情况
- # flash("用户信息读取完成!")
- # # 数据显示页面渲染
- # return render_template('js_edit.html', form=form, title='编辑')
- # 主程序
- if __name__ == '__main__':
- app.run(host='0.0.0.0', port=86, debug=True)
复制代码 |
|