Python在线考试系统源代码

Python在线考试系统源代码Python在线考试系统,采用django框架开发,可微信登录,内含使用说明。系统环境Linux发行版(Ubuntu16.04/CentOS等)MySQL5.5以上版本Python3.5以上版本Redis任意新版本即可Django版本2.1配置文件在项目根目录下的config文件夹中,新建一个local_settings.py文件添加如下配置,注意python文件的严格缩进,不能多或少空格:MySQL配置DATABASES={‘default’:{‘ENG

Python在线考试系统,采用django框架开发,可微信登录,内含使用说明 。

  1. 系统环境
    Linux发行版(Ubuntu16.04 / CentOS等)
    MySQL 5.5以上版本
    Python3.5以上版本
    Redis任意新版本即可
    Django版本2.1

  2. 配置文件
    在项目根目录下的config文件夹中,新建一个local_settings.py文件
    添加如下配置,注意python文件的严格缩进,不能多或少空格:

MySQL配置

DATABASES = {

‘default’: {

‘ENGINE’: ‘django.db.backends.mysql’,
‘NAME’: ‘xx’,
‘USER’: ‘xxx’,
‘PASSWORD’: ‘xxx’
}
}

Redis配置

REDIS = {

‘default’: {

‘HOST’: ‘127.0.0.1’,
‘PORT’: 6379,
‘USER’: ‘’,
‘PASSWORD’: ‘’,
‘db’: 0,
}
}
BANK_REPO = ’ F:/PythonProject/exam/backup ’ # 修改为存放excel题库的位置,用来保留题库
BASE_NUM_ID = 100000
INIT_PASSWORD = ‘p@ssw0rd’
DOMAIN = “http://xxx.xx.xx.xxx” #### 需要修改此处域名
WEB_INDEX_URI = “{}/web/index”.format(DOMAIN) # 首页

发送邮件

EMAIL_BACKEND = ‘django.core.mail.backends.smtp.EmailBackend’ # 邮箱验证后台
EMAIL_USE_TLS = True # 使用TSL
EMAIL_USE_SSL = False # 使用SSL
EMAIL_SSL_CERTFILE = None # SSL证书
EMAIL_SSL_KEYFILE = None # SSL文件
EMAIL_TIMEOUT = None # 延时
EMAIL_HOST = ‘xxx.xxx@xx.xxx’ SMTP地址
EMAIL_PORT = 465 # 端口
EMAIL_HOST_USER = ‘xxx@xxx.xx’ # 发件邮箱
EMAIL_HOST_PASSWORD = ‘password’ # 密码
SERVER_EMAIL = EMAIL_HOST_USER # 服务器邮箱
DEFAULT_FROM_EMAIL = EMAIL_HOST_USER # 默认发件人
ADMINS = [(‘Admin’, ‘xxx@xxx.xx’)] # 管理员邮箱

MANAGERS = ADMINS
3.安装环境
创建虚拟环境:
virtualenv venv
等待虚拟环境创建完成执行:
venv/bin/activate
然后安装项目所需安装包
pip install -r requirements.txt
安装过程如果发现错误,解决错误,直到所有文件安装完成。
4.创建数据库
执行命令连接数据库
mysql -uroot -p密码
创建数据库:
Create database 数据库名 default character set utf8;
然后执行:
python manage.py migrate # 迁移数据库,创建数据表
继续创建超级用户:
python manage.py createsuperuser
创建完成整个系统部署完成了。
运行截图:
在这里插入图片描述

主要程序

def registry_biz(request):
    email = request.POST.get('email', '')  # 获取填写的邮箱
    name = request.POST.get('name', '')  # 获取填写的机构名
    username = request.POST.get('username', '')  # 获取填写的机构联系人
    phone = request.POST.get('phone', '')  # 获取填写的手机号
    ctype = request.POST.get('type', BusinessAccountInfo.INTERNET)  # 获取机构类型
    flag = int(request.POST.get('flag', 2))  # 获取一个标记位,代表用户是创建新用户还是使用绑定老用户的方式
    uname = email.split('@')[0]  # 和之前的注册逻辑没什么区别,创建一个账户名
    if not User.objects.filter(username__exact=name).exists():
        final_name = username
    elif not User.objects.filter(username__exact=uname).exists():
        final_name = uname
    else:
        final_name = email
    if flag == 2:  # 如果标记位是2,那么将为他创建新用户
        user = User.objects.create_user(
            username=final_name,
            email=email,
            password=settings.INIT_PASSWORD,
            is_active=False,
            is_staff=False
        )
    if flag == 1:  # 如果标记位是1,那么为他绑定老用户
        try:
            user = User.objects.get(email=email)
        except User.DoesNotExist:
            return json_response(*UserError.UserNotFound)
    pvalues = { 
   
        'phone': phone,
        'name': final_name,
        'user_src': Profile.COMPANY_USER,
    }
    profile, _ = Profile.objects.select_for_update().get_or_create(email=email)  # 获取或创建用户信息
    for k, v in pvalues.items():
        setattr(profile, k, v)
    profile.save()
    bizvalues = { 
   
        'company_name': name,
        'company_username': username,
        'company_phone': phone,
        'company_type': ctype,
    }
    biz, _ = BusinessAccountInfo.objects.select_for_update().get_or_create(  # 获取或创建机构账户信息
        email=email,
        defaults=bizvalues
    )
    return json_response(200, 'OK', { 
     # 响应JSON格式数据,这个标记位在发送验证邮件的时候还有用
        'name': final_name,
        'email': email,
        'flag': flag
    })

完整程序代码下载地址:
Python在线考试系统源代码

更多Python源代码下载,请微信关注:Python代码大全
在这里插入图片描述

今天的文章Python在线考试系统源代码分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/31637.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注