Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统


Posted in Python onSeptember 05, 2019

1 准备工作

1.1 环境搭建

1.1.1 安装python3.6

python安装官网

1.1.2 安装django2.2

pip install django(==2.2.0) //不加版本默认安装最新版

1.1.3 安装pycharm(社区版,官网下载安装即可)

在安装完成后要配置好需要的第三方库:(pip下载,推荐在pycharm下也配置虚拟环境)

Django2.2

连接mysql需要的库:PyMySQL, mysql, mysqlclinet

验证码用到的库:django-simple-captcha(只需在虚拟环境下配置)

(由于下载库较多,忘记用到的库,下附截图)

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

1.1.4 安装数据库,

我使用的是MySQL,推荐安装界面管理文件(我使用的是MySQLWorkbench)数据库配置,settings.py文件

DATABASES = {
 'default': {
 'ENGINE': 'django.db.backends.mysql',
 'NAME':'cet',    #数据库名字
 'USER':'root',   #登陆数据库的用户名
 'PASSWORD':'123',   #登陆数据库的密码
 'HOST':'localhost',   #数据库的ip地址
 'PORT':'3306',   #ip地址的端口号,默认(3306)
 }
}

__init__.py里面导入pymysql

import pymysql pymysql.install_as_MySQLdb()

1.2 创建django项目及app

1.2.1 创建指令

django-admin startproject project_name #创建项目
python manage.py startapp app_name  #创建app(可能会报错)
#上面创建app失败用下面这个指令
django-admin startapp app_name 
 1.2.2 注册app
INSTALLED_APPS = [
 'django.contrib.admin',  
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'login',   #登录注册
 'captcha',  #验证码
 'home',   #报名主页
]

1.4 更改时区和语言

settings.py文件中,将默认改为亚洲/上海和中文

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

1.5 数据库迁移

更改models.py后,要将更改同步到数据库之中,这时就要用到数据库迁移指令(若迁移失败:no changes问题)。

python manage.py makemigrations
python manage.py migrate

1.6 创建超级管理员

命令行冲使用指令创建管理员账号用于使用django自带的框架。

python manage.py createsuperuser

1.7 运行准备

添加端口号:

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

2 注册登录模块

(我将其放在了app名为login里面)

2.1 数据库模型设计

特殊参数说明:verbose_name——用于修改django框架各表成员的名字(相当于副名,只用于显示),其他可以从文章

开头推荐的博客了解。

#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中注册模型

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

2.3 创建表单

在我们创建数据库用户表后,采用表单验证前端的数据并进行存储到数据库中。

#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="真实姓名", max_length=128,widget=forms.TextInput(attrs={'class': 'form-control'}))
 user_id = forms.CharField(label="身份证号", 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="考点", 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="真实姓名", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 user_id = forms.CharField(label="身份证号", max_length=18, widget=forms.TextInput(attrs={'class': 'form-control'}))
 # user_img =
 user_school = forms.CharField(label="所在学校", max_length=128, widget=forms.TextInput(attrs={'class': 'form-control'}))
 # user_f_score = forms.CharField(label="四级成绩", max_length=10, widget=forms.TextInput(attrs={'class': 'form-control'}))
 # user_s_score = forms.CharField(label="六级成绩", max_length=10, widget=forms.TextInput(attrs={'class': 'form-control'}))

2.4 路由及视图设计

2.4.1 路由设计

由于登陆注册使用的路径不多,就将其全放在项目目录下的urls.py文件,当然也可以采用项目和app相结合。

#项目名/urls.py
from django.contrib import admin
from django.urls import path,include
from login import views
urlpatterns = [
 path('', views.index),  #修改端口默认主页
 path('admin/', admin.site.urls), #管理员端
 #登录注册
 path('index/', views.index),
 path('check/', views.check),
 path('login/', views.login),
 path('register/', views.register),
 path('logout/', views.logout),
 #使用验证码
 path('captcha', include('captcha.urls')),
 #报名app路由
 path('homepage/',include('home.urls')),
]

2.4.2 试图设计

#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):
 #不允许重复登录
 if request.session.get('is_login', None):
 return redirect('/index')
 if request.method == "POST":
 login_form = UserForm(request.POST)
 message = "请检查填写的内容!"
 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字典内写入用户状态和数据
   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):
 # 如果本来就未登录,也就没有登出一说
 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):
 # 登录状态不允许注册。
 return redirect("/index/")
 if request.method == "POST":
 register_form = RegisterForm(request.POST)
 message = "请检查填写的内容!"
 if register_form.is_valid(): # 获取数据
  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 = '用户已经存在,请重新选择用户名!'
   return render(request, 'login/register.html', locals())
  same_email_user = models.User.objects.filter(email=email)
  if same_email_user: # 邮箱地址唯一
   message = '该邮箱地址已被注册,请使用别的邮箱!'
   return render(request, 'login/register.html', locals())
  message = "注册成功!"
  # 当一切都OK的情况下,创建新用户
  # 创建用户信息//有问题:放在创建用户表后面会出现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 = '无'
  new_user_data.user_id = '无'
  new_user_data.user_school = '无'
  # new_user_data.user_f_score = 425
  # new_user_data.user_s_score = 0
  new_user_data.save()
  #创建用户表
  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/') # 自动跳转到登录页面
 register_form = RegisterForm()
 return render(request, 'login/register.html', locals())

3 个人信息及报名管理

(我将其放在了app名为home里面)

3.1 数据库模型设计

#home/models.py
from django.db import models
# Create your models here.
class exam_entry_table(models.Model):
 #考点信息表
 exam_id = models.CharField(verbose_name="考试编号",max_length=10)
 exam_type = models.CharField(verbose_name="考试类别",max_length=128)
 exam_point = models.CharField(verbose_name="考点",max_length=128)
 exam_time = models.CharField(verbose_name="考试时间",max_length=128)
 number = models.IntegerField(verbose_name="容量")
 entry_number = models.IntegerField(verbose_name="已报名数量",default=0)
 def __str__(self):
 return self.exam_point
 class Meta:
 # ordering = ['c_time']
 verbose_name = '考点'
 verbose_name_plural = '考点信息表'
class user_entry_table(models.Model):
 #用户考试信息表
 email = models.EmailField(verbose_name="邮箱")
 exam_id = models.CharField(verbose_name="考试编号",max_length=10)
 exam_point = models.CharField(verbose_name="考点",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="真实姓名",max_length=128, null=True)
 user_id = models.CharField(verbose_name="身份证号",max_length=18, null=True)
 # user_img =
 user_school = models.CharField(verbose_name="在读学校",max_length=128)
 user_f_score = models.IntegerField(verbose_name="四级成绩", default=0)
 user_s_score = models.IntegerField(verbose_name="六级成绩", default=0)
 def __str__(self):
 return self.user_name
 class Meta:
 # ordering = ['c_time']
 verbose_name = '用户名'
 verbose_name_plural = '用户信息表'

3.2 注册模型

#home/admin.py
from django.contrib import admin
# Register your models here.
from . import models
admin.site.register(models.exam_entry_table) #考点信息表
admin.site.register(models.user_entry_table) #用户考试信息表
admin.site.register(models.user_data)  #用户信息表

3.3 创建表单

#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='验证码')
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="确认密码", 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='验证码')

3.4 路由及视图设计

3.4.1 路由设计

这里用到的路劲较为复杂,采用项目urls和app的urls结合起来避免项目的urls过于拥挤。

先修改项目的urls.py文件:

#项目名/urls.py
path('homepage/',include('home.urls')), #前面已经添加了,这里只做说明

再修改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), #查询报告信息
 path('cet_4/',views.cet_4),   #四级报名
 path('cet_6/',views.cet_6),   #六级报名
 path('change_my_data/',views.updata),
]

3.4.2 试图设计

#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)#用户登录注册表
 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'] #用户无法修改用户名
   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()
   # 四六级成绩无法修改
   # 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})
#查询考试信息 还没完成,优化,条件判断
def query(request):
 username = request.session.get('user_name',None)
 user = User.objects.get(name=username)
 #用于判断用户是否报名
 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 = "你还未报名!请先报名之后再来查看!"
  # 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=='无':
   message = "请先更新你的学校信息!"
   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="你的学校还未开放报名!详情请咨询学校相关部门!"
    return render(request, 'login/index.html', locals())
#四级报名
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():
   # 四级考试对分数无要求
   # 只需要获取报考考点信息即可
   # email = cet4_form.cleaned_data['email']
   exam_id = '0'
   exam_point = cet4_form.cleaned_data['exam_point']
   #用与下面的考点判断
   point = models.exam_entry_table.objects.filter(exam_point=exam_point, exam_id='0')
   # 用与下面的是否重复报名判断
   entryer = models.user_entry_table.objects.filter(email=user.email, exam_id=exam_id)
   #判断个人信息是否完善
   if user_da.user_true_name=='无'or user_da.user_id=='无':
    message="请先完善个人真实信息之后再来报名!"
    return render(request, 'home/cet_4.html', locals())
   # 判断是否重复报名
   # print("判断是否重复报名")
   elif entryer:
    message = "请勿重复报名!"
    return render(request, 'home/cet_4.html', locals())
   elif point:
    # 考点存在
    # print("没有重复报名")
    message = "报名成功!请按时参加考试!"
    # 创建一条数据
    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()
    # 考点容量减1,报考人数加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 = "该学校还未开放报名!详情请咨询学校相关部门!"
    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())
#六级报名:
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():
   # 只需要获取报考考点信息即可
   # email = cet4_form.cleaned_data['email']
   exam_id = '1'
   exam_point = cet6_form.cleaned_data['exam_point']
   f_score = user_da.user_f_score
   # 用与下面的考点判断
   point = models.exam_entry_table.objects.filter(exam_point=exam_point, exam_id=exam_id)
   # 用与下面的是否重复报名判断
   entryer = models.user_entry_table.objects.filter(email=user.email, exam_id=exam_id)
   # 判断个人信息是否完善
   if user_da.user_true_name=='无'or user_da.user_id=='无':
    message="请先完善个人真实信息之后再来报名!"
    return render(request, 'home/cet_6.html', locals())
    # 判断是否重复报名
   elif entryer:
    # print("判断是否重复报名")
    message = "请勿重复报名!"
    return render(request, 'home/cet_6.html', locals())
   # 判断考点是否存在
   elif point:
    # 考点存在
    #判断四级成绩是否合格
    if f_score >= 425:
     # print("报名成功!请按时参加考试!")
     # 创建一条数据
     message = "报名成功!请按时参加考试!"
     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()
     # 考点容量减1,报考人数加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 = "四级成绩大于425才能报名六级考试!"
     return render(request, 'home/cet_6.html', locals())
   else:
    message = "该学校还未开放报名!详情请咨询学校相关部门!"
    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())

到这里基本的后端都实现了。

4 项目最终框架展示

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

5 总结

成果展示:

注册:

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

登录:

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

主页:

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

管理端:

Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统

数据库设计问题:

由于此次设计在开始之时没有设计完善,数据库各表之间的关联存在问题,例如本次报名系统而言,用户信息最好添加手机号码,我本打算使用邮箱即可,但是推荐使用联系更快的电话号码等等问题。

附录

整体项目包地址链接: https://pan.baidu.com/s/130AP7coMP_U2q_dzaazUWA 提取码: nywa

总结

以上所述是小编给大家介绍的Pycharm+django2.2+python3.6+MySQL实现简单的考试报名系统,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Python 相关文章推荐
wxPython 入门教程
Oct 07 Python
使用tensorflow实现AlexNet
Nov 20 Python
selenium python浏览器多窗口处理代码示例
Jan 15 Python
用Python下载一个网页保存为本地的HTML文件实例
May 21 Python
python简易远程控制单线程版
Jun 20 Python
Python3.5 处理文本txt,删除不需要的行方法
Dec 10 Python
pybind11在Windows下的使用教程
Jul 04 Python
python pandas cumsum求累计次数的用法
Jul 29 Python
linux 下selenium chrome使用详解
Apr 02 Python
python集合能干吗
Jul 19 Python
Python爬虫之爬取哔哩哔哩热门视频排行榜
Apr 28 Python
分享7个 Python 实战项目练习
Mar 03 Python
PyCharm搭建Spark开发环境的实现步骤
Sep 05 #Python
浅谈Python_Openpyxl使用(最全总结)
Sep 05 #Python
python实现人工智能Ai抠图功能
Sep 05 #Python
深入了解Python在HDA中的应用
Sep 05 #Python
python urllib爬虫模块使用解析
Sep 05 #Python
详解Python3 pandas.merge用法
Sep 05 #Python
python爬虫 猫眼电影和电影天堂数据csv和mysql存储过程解析
Sep 05 #Python
You might like
php中防止伪造跨站请求的小招式
2011/09/02 PHP
PHP+jQuery 注册模块开发详解
2014/10/14 PHP
PHP代码加密的方法总结
2020/03/13 PHP
广告显示判断
2006/08/31 Javascript
Javascript miscellanea -display data real time, using window.status
2007/01/09 Javascript
JS 控制非法字符的输入代码
2009/12/04 Javascript
JavaScript NaN和Infinity特殊值 [译]
2012/09/20 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
js脚本实现数据去重
2014/11/27 Javascript
jQuery动态效果显示人物结构关系图的方法
2015/05/07 Javascript
JavaScript动态设置div的样式的方法
2015/12/26 Javascript
jQGrid动态填充select下拉框的选项值(动态填充)
2016/11/28 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
vue.js过滤器+ajax实现事件监听及后台php数据交互实例
2018/05/22 Javascript
vue项目中使用多选框的实例代码
2020/07/22 Javascript
Element DateTimePicker日期时间选择器的使用示例
2020/07/27 Javascript
vue-router重写push方法,解决相同路径跳转报错问题
2020/08/07 Javascript
Python Web框架Flask下网站开发入门实例
2015/02/08 Python
Python编程中字符串和列表的基本知识讲解
2015/10/14 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
用python处理MS Word的实例讲解
2018/05/08 Python
python如何给字典的键对应的值为字典项的字典赋值
2019/07/05 Python
django组合搜索实现过程详解(附代码)
2019/08/06 Python
树莓派极简安装OpenCv的方法步骤
2019/10/10 Python
将python包发布到PyPI和制作whl文件方式
2019/12/25 Python
Python面向对象中类(class)的简单理解与用法分析
2020/02/21 Python
python 递归调用返回None的问题及解决方法
2020/03/16 Python
Visual Studio code 配置Python开发环境
2020/09/11 Python
SmartBuyGlasses丹麦:网上购买名牌太阳镜、眼镜和隐形眼镜
2016/10/01 全球购物
介绍一下MYSQL常用的优化技巧
2012/10/25 面试题
大学生创业计划书的范文
2014/01/07 职场文书
工商局所长四风自我剖析及整改措施
2014/10/26 职场文书
具结保证书范本
2015/05/11 职场文书
乡镇党建工作总结2015
2015/05/19 职场文书
python flappy bird小游戏分步实现流程
2022/02/15 Python
无线电知识基础入门篇
2022/02/18 无线电