文末获取资源,收藏关注不迷路
一、项目介绍
信息技术的发展带来了大量的数据内容,在这些数据中,想要找到自己需要的只有通过搜索引擎。如今,通过百度去查找信息成为大众的首选,然而在经济利益的驱动下,许多百度来的信息都是商业内容,很难找到真实有用的实际信息。在互联网中平台,信息交流和资源共享是一个非常重要的平台,随着用户的增长,大规模数据的形成,在这些错综复杂的数据中用户很难找到符合自己的信息。基于这些问题,本文研究了社区问答网站。通过该系统,用户可以主动的发布问题,获取别人对该问题的解答和讨论,从而获取想要的结果,提高了获取信息的手段和效率,同时加强了用户之间的相互交流沟通,促进了信息化的发展。
本文先提出了开发社区问答网站的背景意义,然后通过功能性和非功能性分析阐述本系统的需求,然后从功能设计和数据库设计两方面进行系统的设计建模。在技术实现部分采用了Python作为开发后台的编程语言,数据库选择MySQL,框架选择django微服务技术。最后进行了代码的编写,并说明了实现流程。最终,通过软件测试来验证社区问答网站的功能要求。综合表明,本社区问答网站满足了信息发布的基本业务,帮助用户及时了解和发布问题内容,提供了深层次的交流平台。
社区问答网站包括用户管理、问题公告管理、问题管理、回答管理、问题分类管理、标签管理。
用户管理包括会员用户和管理员用户两个用户。设计一个用户数据表,使用权限字段进行区分。当前台会员进行注册的时候,权限设为会员。管理员用户权限设置为管理员。虽然数据存储在一个数据库表,但是在登录的时候使用权限类别进行区分,管理员用户无法通过前台进行登录。
评论管理是对问题的回复交流,当问题信息删除的时候,对应的评论信息也会删除,评论信息设计了评论名称、评论内容和对应的问题ID,通过问题ID进行外键关联。
主要功能:普通用户:
1.提出问题,用户可以发表问题,发表问题时可以选择与问题相关的标签。
2.回答问题,用户可以对相关问题,在问题下方发表自己的观点。
3.问题管理,用户可以对自己提出的问题或者回答,进行编辑或者删除。
4.评论功能,用户可以对某一个问题的相关回答,进行评论。
5.通知功能,当自己的回答被某人评论时,可以接受到相关通知。
6.收藏功能,用户可以对相关的回答进行收藏,并可以进行增删改查的操作。
7.点赞功能,用户可以对相关的回答进行点赞。
8.个人信息修改功能,用户可以对自己的个人信息,进行增删改查。
管理员:9.人员管理,管理员可以对所有已经注册用户进行增删改查的操作。
10.内容管理,管理员对所有的问题或者回答进行增删改查。
二、主要使用技术
环境需要
1.运行环境:python3.7/python3.8。
2.IDE环境:pycharm+mysql5.7;
3.数据库工具:Navicat11
4.硬件环境:windows 7/8/10 1G内存以上;或者 Mac OS;
5.数据库:MySql 5.7版本;
技术栈
后端:python+django
前端:vue+CSS+JavaScript+jQuery+elementui
使用说明
使用Navicat或者其它工具,在mysql中创建对应名称的数据库,并导入项目的sql文件;
使用PyCharm 导入项目,修改配置,运行项目;
将项目中config.ini配置文件中的数据库配置改为自己的配置,然后运行;
运行成功后,在浏览器中输入:http://localhost:8080/项目名
三、研究内容
四、核心代码
# coding:utf-8
__author__ = "ila"
from django.http import JsonResponse
from .users_model import users
from util.codes import *
from util.auth import Auth
import util.message as mes
def users_login(request):
if request.method in ["POST", "GET"]:
msg = {
'code': normal_code, "msg": mes.normal_code}
req_dict = request.session.get("req_dict")
if req_dict.get('role')!=None:
del req_dict['role']
datas = users.getbyparams(users, users, req_dict)
if not datas:
msg['code'] = password_error_code
msg['msg'] = mes.password_error_code
return JsonResponse(msg)
req_dict['id'] = datas[0].get('id')
return Auth.authenticate(Auth, users, req_dict)
def users_register(request):
if request.method in ["POST", "GET"]:
msg = {