计算机毕业设计-基于Python+Django的基于知识图谱的医疗问答系统项目开发实战(附源码+论文)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。

🎀当前专栏: Python毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

💞Java毕业设计
🌎微信小程序毕业设计

开发环境

  • 开发语言:Python
  • 数据库:mysql 5.7
  • 数据库工具:Navicat12
  • 开发软件:pycharm
  • 浏览器:谷歌浏览器

源码下载地址:

https://download.csdn.net/download/2301_76953549/87951183

论文目录

【如需全文请按文末获取联系】

在这里插入图片描述

一、项目简介

本文就是采用Python的技术基于知识图谱的医疗问答系统来进行对个人的医疗问答和问答进行管理,能够对健康有计划性的整理,当然,数据库方面为了方便安全,还是采用的MYSQL数据库。

二、系统设计

2.1软件功能模块设计

系统根据不同功能模块进行以下划分。如下图所示:
在这里插入图片描述

2.2数据库设计

管理员信息属性有:用户名、密码、编号。如下图所示。
在这里插入图片描述
用户信息属性包括:编号,姓名,性别,年龄,电话,邮箱,地址,身份证号。具体如下图所示。
在这里插入图片描述

医疗问答信息
在这里插入图片描述
问答信息
在这里插入图片描述

三、系统项目部分截图

3.1管理员登录

任何一个系统缺少不了的就是管理员的登录。当然,管理员登录的界面也应该和系统的主体风格一致,设计美观大方系统在设计页面风格的过程当中,其实我也有请教我的美工同学,也让他帮助我进行一个主题色以及背景色的构建,那么对于管理员来说呢,主要是使用他的登录功能。这样的话,在用户名密码时突出显示,就能够更好地让用户感受到。其页面如下图所示:
在这里插入图片描述

3.2后台首页

在后台首页当中,其实还是以浏览者的角度来看,所以在后台放了四个指标,有系统登录、用户、当前问答总数、年份等等。后台页面如下图所示:
在这里插入图片描述

3.3医疗问答页面

医疗问答的页面呢我们采取的想法就是当前最主流的人工智能客户服务时沟通的页面以及场景,这样更能让用户接受一些。美丽动人的画面能够让我们的系统增加几分动人的画面清新感,这样一来在视觉方面就能更加深动的拿捏住每一位用户的心理。在系统的首页布局方面我还在系统设计时参考了许多当下火热的系统,在他们的元素上我又对我们的系统本身进行了些融合。医疗问答界面就是通过这样的方式来实现的。如下所示:
在这里插入图片描述

3.4问答管理

对于问答过的信息,我们也支持搜索功能。同样将问答的信息以及答案以及提问人通过表格的形式一一将这些信息列出,当然也提供删除的操作,方便我们管理员日后查询以及管理问答的信息,在信息的添加页面当中,除了一些必要的。属性之外还是提供编辑和删除的功能,同时也支持当数据量大时进行一个模糊搜索以及类别搜索,这样一来管理人员可以快速的定位到想要找的数据。如下图所示:
在这里插入图片描述

四、部分核心代码

import time

from django.shortcuts import render

from .models import User
from django.http import JsonResponse, HttpResponseRedirect
from django.core.paginator import Paginator
#from utils.mypage import Pagination



def register(request):
    """
    注册账号
    :return:
    """
    try:
        name = request.POST.get('username')
        passwd = request.POST.get('password')
        phone = request.POST.get('phone')
        user = User.objects.filter(name=name)
        if user:
            return JsonResponse({'message': '用户已存在,请直接登录'}, status=403)
        User.objects.create(
            name=name,
            password=passwd,
            phone=phone,
            role=2,
            description=''
        )
        response_data = {'message': '注册成功'}
        return JsonResponse(response_data)
    except Exception as e:
        print(e)
        return JsonResponse({'message': '注册失败'}, status=401)

def password(request):
    username = request.session['username']
    role = int(request.session['role'])
    user_id = request.session['user_id']
    return render(request,'modify_password.html',locals())
	
	
def get_user(request):
    """
    获取用户列表信息 | 模糊查询
    :param request:
    :return:
    """
    keyword = request.GET.get('name')
    page = request.GET.get("page", '')
    limit = request.GET.get("limit", '')
    role_id = request.GET.get('position','')
    response_data = {}
    response_data['code'] = 0
    response_data['msg'] = ''
    data = []
    if keyword is None:
        results_obj = User.objects.all()
    else:
        results_obj = User.objects.filter(name__contains=keyword).all()
    paginator = Paginator(results_obj, limit)
    results = paginator.page(page)
    if results:
        for user in results:
            record = {
                "id": user.id,
                "name": user.name,
                "password": user.password,
                "phone": user.phone,
                "role": user.role,
                'create_time': user.create_time.strftime('%Y-%m-%d %H:%m:%S'),
                "desc": user.description,
            }
            data.append(record)
        response_data['count'] =len(results_obj)
        response_data['data'] = data

    return JsonResponse(response_data)


def user(request):
    """
    跳转用户页面
    """
    username = request.session['username']
    role = int(request.session['role'])
    user_id= request.session['user_id']
    return render(request, 'user.html', locals())



def login_check(request):
    """
    登录校验
    """
    response_data = {}
    name = request.POST.get('username')
    password = request.POST.get('password')
    user = User.objects.filter(name=name, password=password).first()
    info = {}
    if user:
        # 将用户名存入session中
        request.session["username"] = user.name
        request.session["role"] = user.role
        request.session["user_id"] = user.id
        response_data['message'] = '登录成功'
        return JsonResponse(response_data, status=201)
    else:
        return JsonResponse({'message': '用户名或者密码不正确'}, status=401)


def edit_user(request):
    """
    修改用户
    """
    response_data = {}
    user_id = request.POST.get('id')
    username = request.POST.get('username')
    phone = request.POST.get('phone')
    User.objects.filter(id=user_id).update(
        name=username,
        phone=phone)
    response_data['msg'] = 'success'
    return JsonResponse(response_data, status=201)


def del_user(request):
    """
    删除用户
    """
    user_id = request.POST.get('id')
    result = User.objects.filter(id=user_id).first()
    try:
        if not result:
            response_data = {'error': '删除失败!', 'message': '找不到id为%s' % user_id}
            return JsonResponse(response_data, status=403)
        result.delete()
        response_data = {'message': '删除成功!'}
        return JsonResponse(response_data, status=201)
    except Exception as e:
        response_data = {'message': '删除失败!'}
        return JsonResponse(response_data, status=403)


def change_password(request):
    """
    修改密码
    """

    user = User.objects.filter(name=request.session["username"]).first()
    if user.password == request.POST.get('changePassword'):
        # 修改的密码与原密码重复不予修改
        return JsonResponse({"msg": "修改密码与原密码重复"}), 406
    else:
        # 不重复,予以修改
        User.objects.filter(name=request.session["username"]).update(
            password=request.POST.get('changePassword'))
        # 清除session回到login界面
        del request.session['username']
        return JsonResponse({"msg": "success"})




获取源码或论文

如需对应的论文或源码,以及其他定制需求,也可以下方微❤联系。

  • 6
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值