赞
踩
Hi,大家好,今天给大家介绍一个python管理系统,大家可以用于自己的课设或毕设!
今天要分享的是:毕业设计 基于Django的问答社区管理系统
项目分享:
https://gitee.com/sinonfin/system-sharing
在虚拟环境中运行命令“python manage.py run”启动项目。启动成功后,在浏览器中输入网址“127.0.0.1:9000”即可进入BBS问答社区首页。如图1所示。
在首页可以根据状态和标签过滤帖子列表,按状态查看如图2所示,按标签查看如图3所示。
选中一个帖子,单击可以查看帖子详情,如图4所示。
只有在用户登录后,才能发帖和回帖。所以需要用户先来注册,然后再登录。注册和登录在一个页面,单击“注册”按钮实现注册功能,单击“登录”按钮实现登录功能,如图5所示。
用户发帖页面如图6所示,回帖页面如图7所示。
答案采纳页面如图8所示,显示回复数量页面如图9所示。
部分相关源码
# -*- coding: utf-8 -*- import base64 import uuid import hashlib from urllib import parse from io import BytesIO from tornado import gen from handlers.base_handlers import BaseHandler from database.sql_utils.auth import get_user_by_username, create_user from utils.auth_code import get_pic_code from utils.logger import logger from utils.errcode import LOGIN_VCODE_ERR, PASSWORD_ERR, USERNAME_ERR, USER_EXISTS, USER_CREATE_ERR class LoginHandler(BaseHandler): """登录控制器""" @gen.coroutine def get(self, *args, **kwargs): # 渲染页面 self.render('login.html') @gen.coroutine def post(self, *args, **kwargs): # 登录数据提交 sign = self.get_argument('sign', '') # 接收验证码标识参数 vcode = self.get_argument('vcode', '') # 接收验证码参数 username = self.get_argument('username', '') # 接收用户名参数 password = self.get_argument('password', '') # 接收密码参数 # 检测验证码是否正确 if self.get_secure_cookie(sign).decode('utf-8') != vcode: # 如果验证码错误 self.json_response(*LOGIN_VCODE_ERR) # 返回json格式的错误提示 raise gen.Return() data = yield get_user_by_username(username) # 根据用户名获取数据 if not data: # 如果用户名不存在 self.json_response(*USERNAME_ERR) # 提示错误信息 raise gen.Return() # 检测密码是否正确 if data.get('password') != hashlib.sha1(password.encode('utf-8')).hexdigest(): # 如果密码错误 self.json_response(*PASSWORD_ERR) # 返回json格式错误信息 raise gen.Return() self.set_secure_cookie('auth-user', data.get('username', '')) # 设置Cookie self.set_cookie('username', data.get('username', ''), expires_days=30) # 设置过期时间为30天 self.json_response(200, 'OK', {}) class LogoutHandler(BaseHandler): """ 登出控制器 """ @gen.coroutine def get(self, *args, **kwargs): next = self.get_argument('next', '') # 获取next参数 self.clear_cookie('auth-user') # 删除auth_user的Cookie值 self.clear_cookie('username') # 删除username的Cookie值 next = next + '?' + parse.urlencode({'m': '注销成功', 'e': 'success'}) # 拼接URL参数 self.redirect(next) # 跳转到注销页面 class SignupHandler(BaseHandler): """ 注册控制器 """ @gen.coroutine def get(self, *args, **kwargs): # 渲染页面 self.render('login.html') @gen.coroutine def post(self, *args, **kwargs): # 提交注册数据 username = self.get_argument('username', '') # 接收用户名参数 password = self.get_argument('password', '') # 接收密码参数 vcode = self.get_argument('vcode', '') # 接收验证码参数 sign = self.get_argument('sign', '') # 接收验证码标识参数 # 检测验证码是否正确 if self.get_secure_cookie(sign).decode('utf-8') != vcode: self.json_response(*LOGIN_VCODE_ERR) raise gen.Return() data = yield get_user_by_username(username) # 根据用户名获取用户信息 if data: # 如果用户已经存在 self.json_response(*USER_EXISTS) # 提示错误信息 raise gen.Return() password = hashlib.sha1(password.encode('utf-8')).hexdigest() # 加密密码 result = yield create_user(username, password) # 将用户名和密码写入数据库 if not result: # 如果结果不存在,提示错误信息 self.json_response(*USER_CREATE_ERR) raise gen.Return() self.set_secure_cookie('auth-user', username) # 生成登录cookie self.set_cookie('username', username, expires_days=30) # 设置过期时间 self.json_response(200, 'OK', {}) class AuthCodeHandler(BaseHandler): """ 验证码控制器 """ @gen.coroutine def get(self, *args, **kwargs): # 获取验证码 b = BytesIO() img, check = yield get_pic_code() img.save(b, format='png') vcode = base64.b64encode(b.getvalue()) sign = str(uuid.uuid1()) self.set_secure_cookie(sign, ''.join([str(i) for i in check]).lower(), expires_days=1/48) self.json_response(200, 'OK', { 'vcode': vcode.decode('utf-8'), 'sign': sign })
项目分享:完整源码 + 环境配置文档 + 设计使用手册
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。