1. 功能和性能概要

 登录功能
 用户填写问卷
 反馈用户问卷结果
 浏览历史问卷数据

2.数据库设计

3.后端代码

下面展示一些 代码

# -*- coding: utf-8 -*-
import json
import pymysql
from flask import Flask, request, jsonify, render_template, app, redirect
from flask_cors import CORS# 数据库连接
db = pymysql.connect("localhost", "root", "*****(个人数据库密码)", "ad(数据库名称)")
cursor = db.cursor()# 后端服务启动
app = Flask(__name__, static_folder='static', static_url_path='/static')
cors = CORS(app, resources={r"/*": {"origins": "*"}})# http server
@app.route("/")
def http_server():return redirect('/static/test5.html')# 首页_注册
@app.route('/login', methods=['POST'])
def login_add():if request.method == "POST":username = request.form.get("username")try:cursor.execute("insert into login(username) values (\"'" + str(username) + "'\")")db.commit()  # 提交,使操作生效print("add a new user successfully!")return "1"except Exception as e:print("add a new user failed:", e)db.rollback()  # 发生错误就回滚return "-1"# 首页_登录
@app.route('/login/login', methods=['POST'])
def login_login():if request.method == "POST":username = request.form.get("username")password = request.form.get("password")cursor.execute("select id,username,role,ctime from login where username=\"'"+ str(username) + "'\" and password=\"'" + str(password) + "'\"")data = cursor.fetchone()if data is not None:print("result:", data)jsondata = {"id": str(data[0]), "username": str(data[1]),"role": str(data[2]), "ctime": str(data[3])}return jsonify(jsondata)else:print("result: NULL")jsondata = {}return jsonify(jsondata)# 展示空白问卷界面
@app.route('/login/questionnaire', methods=['GET'])
def questionnaire_list():cursor.execute("select Ques_type,Ques_title from subjects")questiondata = cursor.fetchall()subjects = {}midlisk = []for i in questiondata:subjects["Ques_type"] = i[0]subjects["subject"] = i[1]cursor.execute("select  Ans_type, Ans_title,val from  ops where Ques_type='" + str(i[0]) + "'")answerdata = cursor.fetchall()answers = {}littlelisk = []for a in answerdata:answers["Ans_type"] = a[0]answers["option"] = a[1]answers["fraction"] = a[2]littlelisk.append(answers.copy())subjects["options"] = littleliskmidlisk.append(subjects.copy())cursor.execute("select type,title from questionnaires")questionnairesdata = cursor.fetchall()dic3 = {}largelisk = []if questionnairesdata is not None:for k in questionnairesdata:dic3["type"] = k[0]dic3["name"] = k[1]dic3["list"] = midlisklargelisk.append(dic3.copy())return jsonify(largelisk)# 用户填写答卷
@app.route('/login/questionnaire/add', methods=['POST'])
def questionnaire_add():questionnna = request.jsonuser_name = questionnna["username"]user_arr = questionnna["arr"]cursor.execute("insert into login(username) values (\"" + str(user_name) + "\")")try:addnumber = 0for line in user_arr:answer1 = line["grade"]answer2 = line["answer"]# 求和addnumber += int(answer1)cursor.execute("insert into answerplus(username,sub_ans,sub_number) values (\"" + str(user_name) + "\",\"" + str(answer2) + "\",\"" + str(answer1) + "\")")cursor.execute("update login set sumpoint="+str(addnumber)+" where username=\""+str(user_name)+"\"")db.commit()  # 提交,使操作生效print("add a new questionnaire!")return "1"except Exception as e:print("add a new user failed:", e)db.rollback()  # 发生错误就回滚return "-1"# 展示个人用户填写结果
@app.route('/show', methods=['POST'])
def personshow_list():print(request.data)id1 = request.json#username = request.form.get("username")id = id1["userid"]cursor.execute("SELECT id, username, sumpoint FROM login WHERE id='" + str(id) + "'")data = cursor.fetchall()tem = {}result = []if data is not None:for i in data:tem["id"] = i[0]tem["username"] = i[1]tem["total"] = i[2]cursor.execute("select  sub_ans, sub_number from  answerplus where username='" + str(i[1] ) + "'")subdata = cursor.fetchall()sub = {}sublisk = []for a in subdata:sub["answer"] = a[0]sub["grade"] = a[1]if a[1] >= 3:tem["littlest"] = "单项分≥3分,建议陪同患者前往医院神经内科/老年科/营养科由专业医生进行诊断"else:tem["littlest"] = "单项合格"sublisk.append(sub.copy())  # 特别注意要用copy,否则只是内存的引用tem["arr"] = subliskif i[2] <= 5:tem["judge"] = "营养状况良好"elif i[2] <= 10:tem["judge"] = "存在营养不良风险,建议陪同患者前往医院神经内科/老年科/营养科由专业医生进行诊断"elif i[2] <= 14:tem["judge"] = "轻度营养不良,建议陪同患者前往医院神经内科/老年科/营养科由专业医生进行诊断"else:tem["judge"] = "重度营养不良,建议陪同患者前往医院神经内科/老年科/营养科由专业医生进行诊断"result.append(tem.copy())print("result:", len(data))return jsonify(result)else:print("result: NULL")return jsonify([])# 管理员汇总界面
@app.route('/login/master', methods=['GET'])
def master_show():cursor.execute("select id,username,sumpoint from login")data = cursor.fetchall()temp = {}result = []if data is not None:for i in data:temp["id"] = i[0]temp["username"] = i[1]temp["total"] = i[2]result.append(temp.copy())  # 特别注意要用copy,否则只是内存的引用print("result:", len(data))return jsonify(result)else:print("result: NULL")return jsonify([])if __name__ == "__main__":app.run(host='0.0.0.0', port=80)print("Good bye!")

调试

postman

后端+数据库(pycharm+mysql):使用 “flask”制作的调查量表/问卷相关推荐

  1. mysql免安装数据库用法_MySQL数据库之mysql免安装制作使用说明

    本文主要向大家介绍了MySQL数据库之mysql免安装制作使用说明 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. 1>把压缩文件mysql-noinstall-5.1.6 ...

  2. 分片表怎么建表_经验放送!后端开发实战笔记之如何设计大数据量表结构

    本文来自用户投稿,作者陈浩翔 上篇文章讲解了传统数据库的一些设计注意点.本篇为第二篇,在大数据量的情况下,如何去提前设计这个表结构,来达到一个比较好的效果.对于团队,对于后续的维护和扩展都带来更大的便 ...

  3. 数据库管理系统MySQL

    数据库管理系统MySQL 一.MySQL的介绍 2.数据处理流程 3.数据存储及处理 4.数据库管理系统 5.MySQL介绍及概念 二.MySQL及DataGrip部署 1.MySQL安装 2.Dat ...

  4. flask连接不到mysql数据库,即使使用了python flask mysql,也无法将数据提交到数据库(使用python flask mysql)连接.提交()...

    我正面临一个非常奇怪的问题.我的数据没有被存储在数据库中连接.提交()在Python瓶里.这是我的代码:-在from flask import Flask from flaskext.mysql im ...

  5. mysql的配置以及后端数据库的连接

    mysql配置 上次配置好了tomcat,现在已经可以进行后端的编写了,但是看了很久,毕设需要的后端凑个数据库就够了,所以剩下的就是配置mysql了,前面听朋友说配置tomcat挺麻烦的,但是仔细看看 ...

  6. Nginx负载调度器+双Tomcat负载及会话共享+MySQL后端数据库

    Nginx负载调度器+双Tomcat负载及会话复制+MySQL后端数据库 环境: IP 作用 192.168.2.5 nginx 192.168.2.6 tomcat1 192.168.2.7 tom ...

  7. bmob云数据库属于mysql吗_bmob后端云服务 bmob云数据库

    有没有免费的云服务可以存储app的数据? 有的,建议你去看看bmob后端云服务,我开发app都是用这个平台,完全免费提供云服务器,云存储,等功能. bmob后台是什么技术? 从程序语言角度说,Bmob ...

  8. Vue.js+Node.js+MySQL的前后端+数据库系统结构

    前言: 大三暑假回国实习, 经过了1个月时间的培训学习, 本人渐渐熟悉了实习的工作环境和节奏. 由于我所在的前端APP研发部门使用的是Vue.js框架, 因此我在被分配**[公司官方网站的重制]**任 ...

  9. Myeclipse2017连接MySql数据库实现登录界面的制作(全过程)

    毕业设计选题选的是B/S的系统,决定用Myeclipse+MySql来做,本人小白一枚,前段时间自学了java web的知识,目前已经做出来了登录功能及系统的主界面,接下来就是在主界面对数据库增删改查 ...

  10. 数据库管理系统(基于前端+后端+数据库)

      库存管理系统 包括模块: (1)基本信息管理. (2)商品入库管理. (3)商品出库管理. (4)商品查询管理. (5)查看商品目录. 实训步骤: 开发环境:html , css , js , p ...

最新文章

  1. Xshell关闭导致jar服务终止,使Jar在CentOS后台运行
  2. Hbase API中常用类介绍和使用
  3. [2021.1.31多校省选模拟12]随机变换的子串(线段树维护分治/字符串/自动机思想)
  4. 有字符csv文件导入matlab_Matlab:如何读取CSV文件以及如何读取带有字符串数据项的CSV文件...
  5. 注解版poi操作工具
  6. echarts图表随着窗口大小改变自刷新问题解决
  7. 【动态规划】P1004 方格取数(四维dp模板题)
  8. ADO中最重要的对象有三个:Connection、Recordset和Command
  9. pythonATM,购物车项目实战_补充4-db模块
  10. Forever 0.5 (计算几何思维)
  11. del/xcopy时如何在输出窗口中,不显示文件名
  12. 自动驾驶 10-3: 全球导航卫星系统 (GNSS)The Global Navigation Satellite Systems
  13. USB C口5V输入,四节串联锂电池充电管理芯片,IC电路板PW4405芯片-22号电路板
  14. 详解24个经典股票技术指标(二)
  15. Ultra Fractal(分形艺术软件)官方正式版V6.04 | 含ultra fractal教程 | 最新ultra fractal下载
  16. openjdk1.8的下载与安装
  17. 力扣LeetCode经典算法 礼物的最大价值
  18. 求解矩阵Ax=b最小二乘问题
  19. 他两次都没感动CCTV,却真正感动了中国
  20. 又一个悲伤的事件!8.25浙江美女滴滴遇害!一而再,难道还要再而三吗?

热门文章

  1. 最新推券客CMS淘宝客优惠券程序源码V3.6.1版
  2. Sketch79 mac专业矢量绘图设计
  3. 大数据处理的基本流程
  4. 鸿蒙系统屏幕录制,鸿蒙系统游戏性能出色;三星折叠屏发布屏下摄像头
  5. 金园云化工园区智慧应急解决方案
  6. matlab归一化mapminmax警告,利用mapminmax归一化的问题
  7. 推荐一款基于.Net Core开发简约漂亮的 WPF UI库
  8. 深度学习面试题2018
  9. UG装配体,打开后总显示卸载的一种可行解决办法
  10. 【数据获取】1:25万全国基础地理公开数据库(水系、道路、村庄)下载整理