欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Pycharm+django2.2+python3.6+MySQL實(shí)現(xiàn)簡(jiǎn)單的考試報(bào)名系統(tǒng)

 更新時(shí)間:2019年09月05日 11:48:44   作者:Afollower  
這篇文章主要介紹了Pycharm+django2.2+python3.6+MySQL實(shí)現(xiàn)簡(jiǎn)單的考試報(bào)名系統(tǒng),本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

1 準(zhǔn)備工作

1.1 環(huán)境搭建

1.1.1 安裝python3.6

python安裝官網(wǎng)

1.1.2 安裝django2.2

pip install django(==2.2.0) //不加版本默認(rèn)安裝最新版

1.1.3 安裝pycharm(社區(qū)版,官網(wǎng)下載安裝即可)

在安裝完成后要配置好需要的第三方庫(kù):(pip下載,推薦在pycharm下也配置虛擬環(huán)境)

Django2.2

連接mysql需要的庫(kù):PyMySQL, mysql, mysqlclinet

驗(yàn)證碼用到的庫(kù):django-simple-captcha(只需在虛擬環(huán)境下配置)

(由于下載庫(kù)較多,忘記用到的庫(kù),下附截圖)

1.1.4 安裝數(shù)據(jù)庫(kù),

我使用的是MySQL,推薦安裝界面管理文件(我使用的是MySQLWorkbench)數(shù)據(jù)庫(kù)配置,settings.py文件

DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.mysql',
 'NAME':'cet',    #數(shù)據(jù)庫(kù)名字
 'USER':'root',   #登陸數(shù)據(jù)庫(kù)的用戶名
 'PASSWORD':'123',   #登陸數(shù)據(jù)庫(kù)的密碼
 'HOST':'localhost',   #數(shù)據(jù)庫(kù)的ip地址
 'PORT':'3306',   #ip地址的端口號(hào),默認(rèn)(3306)
 }
}

__init__.py里面導(dǎo)入pymysql

import pymysql pymysql.install_as_MySQLdb()

1.2 創(chuàng)建django項(xiàng)目及app

1.2.1 創(chuàng)建指令

django-admin startproject project_name #創(chuàng)建項(xiàng)目
python manage.py startapp app_name  #創(chuàng)建app(可能會(huì)報(bào)錯(cuò))
#上面創(chuàng)建app失敗用下面這個(gè)指令
django-admin startapp app_name 
 1.2.2 注冊(cè)app
INSTALLED_APPS = [
 'django.contrib.admin',  
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'login',   #登錄注冊(cè)
 'captcha',  #驗(yàn)證碼
 'home',   #報(bào)名主頁(yè)
]

1.4 更改時(shí)區(qū)和語(yǔ)言

settings.py文件中,將默認(rèn)改為亞洲/上海和中文

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

1.5 數(shù)據(jù)庫(kù)遷移

更改models.py后,要將更改同步到數(shù)據(jù)庫(kù)之中,這時(shí)就要用到數(shù)據(jù)庫(kù)遷移指令(若遷移失敗:no changes問(wèn)題)。

python manage.py makemigrations
python manage.py migrate

1.6 創(chuàng)建超級(jí)管理員

命令行沖使用指令創(chuàng)建管理員賬號(hào)用于使用django自帶的框架。

python manage.py createsuperuser

1.7 運(yùn)行準(zhǔn)備

添加端口號(hào):

2 注冊(cè)登錄模塊

(我將其放在了app名為login里面)

2.1 數(shù)據(jù)庫(kù)模型設(shè)計(jì)

特殊參數(shù)說(shuō)明:verbose_name——用于修改django框架各表成員的名字(相當(dāng)于副名,只用于顯示),其他可以從文章

開(kāi)頭推薦的博客了解。

#login/models.py
from django.db import models
# Create your models here.
class User(models.Model):
 '''用戶表'''
 gender = (
 ('male', '男'),
 ('female', '女'),
 )
 name = models.CharField(verbose_name="用戶名", max_length=128, unique=True) # unique表示唯一
 password = models.CharField(verbose_name="密碼", max_length=256)
 email = models.EmailField(verbose_name="郵箱", unique=True)
 sex = models.CharField(verbose_name="性別", max_length=32, choices=gender, default='男')
 c_time = models.DateTimeField(auto_now_add=True)
 def __str__(self):
 return self.name
 #用于將django自帶管理員端漢化
 class Meta:
 ordering = ['c_time']
 verbose_name = '用戶'
 verbose_name_plural = '用戶'

2.2 在admin中注冊(cè)模型

#login/admin.py
from django.contrib import admin
# Register your models here.
from . import models
admin.site.register(models.User)

2.3 創(chuàng)建表單

在我們創(chuàng)建數(shù)據(jù)庫(kù)用戶表后,采用表單驗(yàn)證前端的數(shù)據(jù)并進(jìn)行存儲(chǔ)到數(shù)據(jù)庫(kù)中。

#login/forms.py
from django import forms
from captcha.fields import CaptchaField
class user_entry(forms.Form):
 user_name = forms.CharField(label="用戶名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 user_true_name = forms.CharField(label="真實(shí)姓名", max_length=128,widget=forms.TextInput(attrs={'class': 'form-control'}))
 user_id = forms.CharField(label="身份證號(hào)", max_length=18, widget=forms.TextInput(attrs={'class': 'form-control'}))
 email = forms.EmailField(label="郵箱地址", widget=forms.EmailInput(attrs={'class': 'form-control'}))
 exam_point = forms.CharField(label="考點(diǎn)", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
class user_datas(forms.Form):
 email = forms.EmailField(label="郵箱地址", widget=forms.EmailInput(attrs={'class': 'form-control'}))
 user_name = forms.CharField(label="用戶名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 user_true_name = forms.CharField(label="真實(shí)姓名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 user_id = forms.CharField(label="身份證號(hào)", max_length=18, widget=forms.TextInput(attrs={'class': 'form-control'}))
 # user_img =
 user_school = forms.CharField(label="所在學(xué)校", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 # user_f_score = forms.CharField(label="四級(jí)成績(jī)", max_length=10, widget=forms.TextInput(attrs={'class': 'form-control'}))
 # user_s_score = forms.CharField(label="六級(jí)成績(jī)", max_length=10, widget=forms.TextInput(attrs={'class': 'form-control'}))

2.4 路由及視圖設(shè)計(jì)

2.4.1 路由設(shè)計(jì)

由于登陸注冊(cè)使用的路徑不多,就將其全放在項(xiàng)目目錄下的urls.py文件,當(dāng)然也可以采用項(xiàng)目和app相結(jié)合。

#項(xiàng)目名/urls.py
from django.contrib import admin
from django.urls import path,include
from login import views
urlpatterns = [
 path('', views.index),  #修改端口默認(rèn)主頁(yè)
 path('admin/', admin.site.urls), #管理員端
 #登錄注冊(cè)
 path('index/', views.index),
 path('check/', views.check),
 path('login/', views.login),
 path('register/', views.register),
 path('logout/', views.logout),
 #使用驗(yàn)證碼
 path('captcha', include('captcha.urls')),
 #報(bào)名app路由
 path('homepage/',include('home.urls')),
]

2.4.2 試圖設(shè)計(jì)

#login/views.py
from django.shortcuts import render, redirect
from . import models
from .forms import UserForm,RegisterForm
from home.models import user_data
# Create your views here.
def check(request):
 pass
 return render(request, 'login/hello.html')
def index(request):
 pass
 return render(request, 'login/index.html')
#加入sesson
def login(request):
 #不允許重復(fù)登錄
 if request.session.get('is_login', None):
 return redirect('/index')
 if request.method == "POST":
 login_form = UserForm(request.POST)
 message = "請(qǐng)檢查填寫(xiě)的內(nèi)容!"
 if login_form.is_valid():
  username = login_form.cleaned_data['username']
  password = login_form.cleaned_data['password']
  try:
  user = models.User.objects.get(name=username)
  if user.password == password:
   #往session字典內(nèi)寫(xiě)入用戶狀態(tài)和數(shù)據(jù)
   request.session['is_login'] = True
   request.session['user_id'] = user.id
   request.session['user_name'] = user.name
   return redirect('/index/')
  else:
   message = "密碼不正確!"
  except:
  message = "用戶不存在!"
 return render(request, 'login/login.html', locals())
 login_form = UserForm()
 return render(request, 'login/login.html', locals())
def logout(request):
 if not request.session.get('is_login', None):
 # 如果本來(lái)就未登錄,也就沒(méi)有登出一說(shuō)
 return redirect("/index/")
 request.session.flush()
 # 或者使用下面的方法
 # del request.session['is_login']
 # del request.session['user_id']
 # del request.session['user_name']
 return redirect("/index/")
def register(request):
 if request.session.get('is_login', None):
 # 登錄狀態(tài)不允許注冊(cè)。
 return redirect("/index/")
 if request.method == "POST":
 register_form = RegisterForm(request.POST)
 message = "請(qǐng)檢查填寫(xiě)的內(nèi)容!"
 if register_form.is_valid(): # 獲取數(shù)據(jù)
  username = register_form.cleaned_data['username']
  password1 = register_form.cleaned_data['password1']
  password2 = register_form.cleaned_data['password2']
  email = register_form.cleaned_data['email']
  sex = register_form.cleaned_data['sex']
  if password1 != password2: # 判斷兩次密碼是否相同
  message = "兩次輸入的密碼不同!"
  return render(request, 'login/register.html', locals())
  else:
  same_name_user = models.User.objects.filter(name=username)
  if same_name_user: # 用戶名唯一
   message = '用戶已經(jīng)存在,請(qǐng)重新選擇用戶名!'
   return render(request, 'login/register.html', locals())
  same_email_user = models.User.objects.filter(email=email)
  if same_email_user: # 郵箱地址唯一
   message = '該郵箱地址已被注冊(cè),請(qǐng)使用別的郵箱!'
   return render(request, 'login/register.html', locals())
  message = "注冊(cè)成功!"
  # 當(dāng)一切都OK的情況下,創(chuàng)建新用戶
  # 創(chuàng)建用戶信息//有問(wèn)題:放在創(chuàng)建用戶表后面會(huì)出現(xiàn)DJANGO pymysql.err.IntegrityError:
  # (1062, "Duplicate entry '' for key 'user_name'")
  new_user_data = user_data.objects.create()
  new_user_data.user_name = username
  new_user_data.user_true_name = '無(wú)'
  new_user_data.user_id = '無(wú)'
  new_user_data.user_school = '無(wú)'
  # new_user_data.user_f_score = 425
  # new_user_data.user_s_score = 0
  new_user_data.save()
  #創(chuàng)建用戶表
  new_user = models.User.objects.create()
  new_user.name = username
  new_user.password = password1
  new_user.email = email
  new_user.sex = sex
  new_user.save()
  return redirect('/login/') # 自動(dòng)跳轉(zhuǎn)到登錄頁(yè)面
 register_form = RegisterForm()
 return render(request, 'login/register.html', locals())

3 個(gè)人信息及報(bào)名管理

(我將其放在了app名為home里面)

3.1 數(shù)據(jù)庫(kù)模型設(shè)計(jì)

#home/models.py
from django.db import models
# Create your models here.
class exam_entry_table(models.Model):
 #考點(diǎn)信息表
 exam_id = models.CharField(verbose_name="考試編號(hào)",max_length=10)
 exam_type = models.CharField(verbose_name="考試類別",max_length=128)
 exam_point = models.CharField(verbose_name="考點(diǎn)",max_length=128)
 exam_time = models.CharField(verbose_name="考試時(shí)間",max_length=128)
 number = models.IntegerField(verbose_name="容量")
 entry_number = models.IntegerField(verbose_name="已報(bào)名數(shù)量",default=0)
 def __str__(self):
 return self.exam_point
 class Meta:
 # ordering = ['c_time']
 verbose_name = '考點(diǎn)'
 verbose_name_plural = '考點(diǎn)信息表'
class user_entry_table(models.Model):
 #用戶考試信息表
 email = models.EmailField(verbose_name="郵箱")
 exam_id = models.CharField(verbose_name="考試編號(hào)",max_length=10)
 exam_point = models.CharField(verbose_name="考點(diǎn)",max_length=128)
 def __str__(self):
 return self.email
 class Meta:
 # ordering = ['c_time']
 verbose_name = '用戶考試信息'
 verbose_name_plural = '用戶考試信息表'
class user_data(models.Model):
 #用戶信息表
 user_name = models.CharField(verbose_name="用戶名",max_length=128, unique=True)
 user_true_name = models.CharField(verbose_name="真實(shí)姓名",max_length=128, null=True)
 user_id = models.CharField(verbose_name="身份證號(hào)",max_length=18, null=True)
 # user_img =
 user_school = models.CharField(verbose_name="在讀學(xué)校",max_length=128)
 user_f_score = models.IntegerField(verbose_name="四級(jí)成績(jī)", default=0)
 user_s_score = models.IntegerField(verbose_name="六級(jí)成績(jī)", default=0)
 def __str__(self):
 return self.user_name
 class Meta:
 # ordering = ['c_time']
 verbose_name = '用戶名'
 verbose_name_plural = '用戶信息表'

3.2 注冊(cè)模型

#home/admin.py
from django.contrib import admin
# Register your models here.
from . import models
admin.site.register(models.exam_entry_table) #考點(diǎn)信息表
admin.site.register(models.user_entry_table) #用戶考試信息表
admin.site.register(models.user_data)  #用戶信息表

3.3 創(chuàng)建表單

#home/forms.py
from django import forms
from captcha.fields import CaptchaField
class UserForm(forms.Form):
 username = forms.CharField(label="用戶名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 password = forms.CharField(label="密碼", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control'}))
 captcha = CaptchaField(label='驗(yàn)證碼')
class RegisterForm(forms.Form):
 gender = (
  ('male', "男"),
  ('female', "女"),
 )
 username = forms.CharField(label="用戶名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 password1 = forms.CharField(label="密碼", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control'}))
 password2 = forms.CharField(label="確認(rèn)密碼", max_length=256, widget=forms.PasswordInput(attrs={'class': 'form-control'}))
 email = forms.EmailField(label="郵箱地址", widget=forms.EmailInput(attrs={'class': 'form-control'}))
 sex = forms.ChoiceField(label='性別', choices=gender)
 captcha = CaptchaField(label='驗(yàn)證碼')

3.4 路由及視圖設(shè)計(jì)

3.4.1 路由設(shè)計(jì)

這里用到的路勁較為復(fù)雜,采用項(xiàng)目urls和app的urls結(jié)合起來(lái)避免項(xiàng)目的urls過(guò)于擁擠。

先修改項(xiàng)目的urls.py文件:

#項(xiàng)目名/urls.py
path('homepage/',include('home.urls')), #前面已經(jīng)添加了,這里只做說(shuō)明

再修改app中的urls.py文件:

#home/urls.py
from django.contrib import admin
from django.urls import path,include
from home import views
urlpatterns = [
 path('test/', views.test),
 path('my_data/',views.mydate),   #我的信息
 path('query_results/',views.query), #查詢報(bào)告信息
 path('cet_4/',views.cet_4),   #四級(jí)報(bào)名
 path('cet_6/',views.cet_6),   #六級(jí)報(bào)名
 path('change_my_data/',views.updata),
]

3.4.2 試圖設(shè)計(jì)

#home/views.py
from django.shortcuts import render, redirect
from . import models
from .forms import user_entry, user_datas
from django.http import HttpResponse,HttpResponseRedirect
# from django.contrib.auth.models import User
from login.models import User
# Create your views here.
def test(request):
 pass
 return render(request, 'home/test.html')
#我的信息
def mydate(request):
 username = request.session.get('user_name', None)
 account = User.objects.get(name=username)#用戶登錄注冊(cè)表
 user = models.user_data.objects.get(user_name= username)
 return render(request,"home/myself.html",{"user":user, "account":account})
#修改我的信息
def updata(request):
 username = request.session.get('user_name', None)
 # print("-----------------------")
 # print(username)
 # print("-----------------------")
 user_da = models.user_data.objects.get(user_name=username)
 user = User.objects.get(name=username)#login_user表
 if request.method == "POST":
  userdata = user_datas(request.POST)
  # print(userdata)
  if userdata.is_valid():
   user_das = userdata.cleaned_data
   # user.user_name = user_da['user_name'] #用戶無(wú)法修改用戶名
   user.email = user_das['email']
   user_da.user_true_name = user_das['user_true_name']
   user_da.user_id = user_das['user_id']
   user_da.user_school = user_das['user_school']
   user_da.save()
   user.save()
   # 四六級(jí)成績(jī)無(wú)法修改
   # user_datas.user_f_score = user_da['user_f_score']
   # user_datas.user_s_score = user_da['user_s_score']
   return redirect('/homepage/my_data/')
 else:
  userdata = user_datas(initial={"email":user.email,"user_name":user_da.user_name,"user_true_name":user_da.user_true_name,"user_id":user_da.user_id,"user_school":user_da.user_school})
  return render(request, 'home/change_mydata.html', {"userdata":userdata})
#查詢考試信息 還沒(méi)完成,優(yōu)化,條件判斷
def query(request):
 username = request.session.get('user_name',None)
 user = User.objects.get(name=username)
 #用于判斷用戶是否報(bào)名
 user_en = models.user_entry_table.objects.filter(email=user.email)
 # print("********************")
 # print(user_en)
 # print(user_en[0])
 if user_en:
  # print(len(user_en))
  if len(user_en)==1:
   user_entry = models.user_entry_table.objects.get(email=user.email)
   user_point = user_entry.exam_point
   user_eid = user_entry.exam_id
   exam_entry = models.exam_entry_table.objects.get(exam_point=user_point, exam_id=user_eid)
   return render(request, 'home/query1.html', {"exam_entry": exam_entry})
  else:
   user_entry4 = models.user_entry_table.objects.get(email=user.email, exam_id=0)
   user_entry6 = models.user_entry_table.objects.get(email=user.email, exam_id=1)
   user_point4 = user_entry4.exam_point
   user_point6 = user_entry6.exam_point
   exam_entry4 = models.exam_entry_table.objects.get(exam_point=user_point4, exam_id=0)
   exam_entry6 = models.exam_entry_table.objects.get(exam_point=user_point6, exam_id=1)
   return render(request, 'home/query2.html', {"exam_entry4": exam_entry4, "exam_entry6":exam_entry6})
 else:
  # message = "你還未報(bào)名!請(qǐng)先報(bào)名之后再來(lái)查看!"
  # return render(request, 'login/index.html', locals())
  user_da = models.user_data.objects.get(user_name=user.name)
  school = user_da.user_school
  if school=='無(wú)':
   message = "請(qǐng)先更新你的學(xué)校信息!"
   return render(request, 'login/index.html', locals())
  else:
   point = models.exam_entry_table.objects.filter(exam_point=school)
   if point:
    if len(point)==1:
     exam = models.exam_entry_table.objects.get(exam_point=school)
     return render(request, 'home/exam1.html', {"exam": exam})
    else:
     exam4 = models.exam_entry_table.objects.get(exam_point=school, exam_id=0)
     exam6 = models.exam_entry_table.objects.get(exam_point=school, exam_id=1)
     return render(request, 'home/exam2.html', {"exam4": exam4, "exam6": exam6})
   else:
    message="你的學(xué)校還未開(kāi)放報(bào)名!詳情請(qǐng)咨詢學(xué)校相關(guān)部門!"
    return render(request, 'login/index.html', locals())
#四級(jí)報(bào)名
def cet_4(request):
 username = request.session.get('user_name', None)
 # 用戶信息表,用戶表,獲取信息判斷資格
 user_da = models.user_data.objects.get(user_name=username)
 user = User.objects.get(name=username)
 if request.method == "POST":
  cet4_form = user_entry(request.POST)
  if cet4_form.is_valid():
   # 四級(jí)考試對(duì)分?jǐn)?shù)無(wú)要求
   # 只需要獲取報(bào)考考點(diǎn)信息即可
   # email = cet4_form.cleaned_data['email']
   exam_id = '0'
   exam_point = cet4_form.cleaned_data['exam_point']
   #用與下面的考點(diǎn)判斷
   point = models.exam_entry_table.objects.filter(exam_point=exam_point, exam_id='0')
   # 用與下面的是否重復(fù)報(bào)名判斷
   entryer = models.user_entry_table.objects.filter(email=user.email, exam_id=exam_id)
   #判斷個(gè)人信息是否完善
   if user_da.user_true_name=='無(wú)'or user_da.user_id=='無(wú)':
    message="請(qǐng)先完善個(gè)人真實(shí)信息之后再來(lái)報(bào)名!"
    return render(request, 'home/cet_4.html', locals())
   # 判斷是否重復(fù)報(bào)名
   # print("判斷是否重復(fù)報(bào)名")
   elif entryer:
    message = "請(qǐng)勿重復(fù)報(bào)名!"
    return render(request, 'home/cet_4.html', locals())
   elif point:
    # 考點(diǎn)存在
    # print("沒(méi)有重復(fù)報(bào)名")
    message = "報(bào)名成功!請(qǐng)按時(shí)參加考試!"
    # 創(chuàng)建一條數(shù)據(jù)
    new_user = models.user_entry_table.objects.create()
    new_user.email = user.email
    new_user.exam_id = exam_id
    new_user.exam_point = exam_point
    new_user.save()
    # 考點(diǎn)容量減1,報(bào)考人數(shù)加1
    exam_entry = models.exam_entry_table.objects.get(exam_point=exam_point, exam_id=exam_id)
    exam_entry.number -= 1
    exam_entry.entry_number += 1
    exam_entry.save()
    return render(request, 'home/cet_4.html', locals())
   else:
    message = "該學(xué)校還未開(kāi)放報(bào)名!詳情請(qǐng)咨詢學(xué)校相關(guān)部門!"
    return render(request, 'home/cet_4.html', locals())
 cet4_form = user_entry(initial={"email": user.email, "user_name": user_da.user_name, "user_true_name": user_da.user_true_name,
     "user_id": user_da.user_id})
 return render(request, 'home/cet_4.html', locals())
#六級(jí)報(bào)名:
def cet_6(request):
 username = request.session.get('user_name', None)
 # 用戶信息表,用戶表,獲取信息判斷資格
 user_da = models.user_data.objects.get(user_name=username)
 user = User.objects.get(name=username)
 if request.method == "POST":
  cet6_form = user_entry(request.POST)
  if cet6_form.is_valid():
   # 只需要獲取報(bào)考考點(diǎn)信息即可
   # email = cet4_form.cleaned_data['email']
   exam_id = '1'
   exam_point = cet6_form.cleaned_data['exam_point']
   f_score = user_da.user_f_score
   # 用與下面的考點(diǎn)判斷
   point = models.exam_entry_table.objects.filter(exam_point=exam_point, exam_id=exam_id)
   # 用與下面的是否重復(fù)報(bào)名判斷
   entryer = models.user_entry_table.objects.filter(email=user.email, exam_id=exam_id)
   # 判斷個(gè)人信息是否完善
   if user_da.user_true_name=='無(wú)'or user_da.user_id=='無(wú)':
    message="請(qǐng)先完善個(gè)人真實(shí)信息之后再來(lái)報(bào)名!"
    return render(request, 'home/cet_6.html', locals())
    # 判斷是否重復(fù)報(bào)名
   elif entryer:
    # print("判斷是否重復(fù)報(bào)名")
    message = "請(qǐng)勿重復(fù)報(bào)名!"
    return render(request, 'home/cet_6.html', locals())
   # 判斷考點(diǎn)是否存在
   elif point:
    # 考點(diǎn)存在
    #判斷四級(jí)成績(jī)是否合格
    if f_score >= 425:
     # print("報(bào)名成功!請(qǐng)按時(shí)參加考試!")
     # 創(chuàng)建一條數(shù)據(jù)
     message = "報(bào)名成功!請(qǐng)按時(shí)參加考試!"
     new_user = models.user_entry_table.objects.create()
     new_user.email = user.email
     new_user.exam_id = exam_id
     new_user.exam_point = exam_point
     new_user.save()
     # 考點(diǎn)容量減1,報(bào)考人數(shù)加1
     exam_entry = models.exam_entry_table.objects.get(exam_point=exam_point, exam_id=exam_id)
     exam_entry.number -= 1
     exam_entry.entry_number += 1
     exam_entry.save()
     return render(request, 'home/cet_6.html', locals())
    else:
     message = "四級(jí)成績(jī)大于425才能報(bào)名六級(jí)考試!"
     return render(request, 'home/cet_6.html', locals())
   else:
    message = "該學(xué)校還未開(kāi)放報(bào)名!詳情請(qǐng)咨詢學(xué)校相關(guān)部門!"
    return render(request, 'home/cet_6.html', locals())
 cet6_form = user_entry(
  initial={"email": user.email, "user_name": user_da.user_name, "user_true_name": user_da.user_true_name,
     "user_id": user_da.user_id})
 return render(request, 'home/cet_6.html', locals())

到這里基本的后端都實(shí)現(xiàn)了。

4 項(xiàng)目最終框架展示

5 總結(jié)

成果展示:

注冊(cè):

登錄:

主頁(yè):

管理端:

數(shù)據(jù)庫(kù)設(shè)計(jì)問(wèn)題:

由于此次設(shè)計(jì)在開(kāi)始之時(shí)沒(méi)有設(shè)計(jì)完善,數(shù)據(jù)庫(kù)各表之間的關(guān)聯(lián)存在問(wèn)題,例如本次報(bào)名系統(tǒng)而言,用戶信息最好添加手機(jī)號(hào)碼,我本打算使用郵箱即可,但是推薦使用聯(lián)系更快的電話號(hào)碼等等問(wèn)題。

附錄

整體項(xiàng)目包地址鏈接: https://pan.baidu.com/s/130AP7coMP_U2q_dzaazUWA 提取碼: nywa

總結(jié)

以上所述是小編給大家介紹的Pycharm+django2.2+python3.6+MySQL實(shí)現(xiàn)簡(jiǎn)單的考試報(bào)名系統(tǒng),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!

相關(guān)文章

  • Python基于GDAL鑲嵌拼接遙感影像

    Python基于GDAL鑲嵌拼接遙感影像

    這篇文章主要介紹了Python基于GDAL鑲嵌拼接遙感影像, 這里有一點(diǎn)需要注意的就是,用這個(gè)方法進(jìn)行鑲嵌拼接操作時(shí),影像有一條明顯的拼接線,不知道是不是我數(shù)據(jù)的問(wèn)題,你們可以自己嘗試一下,只要修改主函數(shù)中的路徑即可,需要的朋友可以參考下
    2023-10-10
  • tensorflow基本操作小白快速構(gòu)建線性回歸和分類模型

    tensorflow基本操作小白快速構(gòu)建線性回歸和分類模型

    這篇文章主要介紹了tensorflow基本操作,快速構(gòu)建線性回歸和分類模型,圖文代碼示例非常詳細(xì),有需要的朋友可以借鑒參考下,希望可以對(duì)大家有所幫助
    2021-08-08
  • python使用numpy中的size()函數(shù)實(shí)例用法詳解

    python使用numpy中的size()函數(shù)實(shí)例用法詳解

    在本篇文章里小編給整理的是一篇關(guān)于python使用numpy中的size()函數(shù)實(shí)例用法詳解內(nèi)容,有興趣的朋友們可以學(xué)習(xí)下。
    2021-01-01
  • pytorch1.60 torch.nn在pycharm中無(wú)法自動(dòng)智能提示的解決

    pytorch1.60 torch.nn在pycharm中無(wú)法自動(dòng)智能提示的解決

    這篇文章主要介紹了pytorch1.60 torch.nn在pycharm中無(wú)法自動(dòng)智能提示的解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-02-02
  • python實(shí)現(xiàn)推箱子游戲

    python實(shí)現(xiàn)推箱子游戲

    這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)推箱子游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • Python全棧之學(xué)習(xí)HTML

    Python全棧之學(xué)習(xí)HTML

    這篇文章主要為大家介紹了Python全棧之HTML,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-01-01
  • Python之Matlibplot畫(huà)圖功能演示過(guò)程

    Python之Matlibplot畫(huà)圖功能演示過(guò)程

    這篇文章主要介紹了Python之Matlibplot畫(huà)圖功能演示過(guò)程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-09-09
  • 打印tensorflow恢復(fù)模型中所有變量與操作節(jié)點(diǎn)方式

    打印tensorflow恢復(fù)模型中所有變量與操作節(jié)點(diǎn)方式

    這篇文章主要介紹了打印tensorflow恢復(fù)模型中所有變量與操作節(jié)點(diǎn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-05-05
  • 淺析python的Lambda表達(dá)式

    淺析python的Lambda表達(dá)式

    在本文里我們給大家整理了關(guān)于python的Lambda表達(dá)式相關(guān)知識(shí)點(diǎn)以及相關(guān)實(shí)例,需要的朋友們學(xué)習(xí)下。
    2019-02-02
  • python3.4控制用戶輸入與輸出的方法

    python3.4控制用戶輸入與輸出的方法

    今天小編就為大家分享一篇python3.4控制用戶輸入與輸出的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-10-10

最新評(píng)論