django班级系统实例

django2.1+mysql环境
mysql数据库设置成utf-8
查看mysql的状态 status
在这里插入图片描述
修改两个地方:
(1)vim /etc/mysql/conf.d/mysql.cnf 如下:
character-set-server=utf8
(2)sudo gedit /etc/mysql/mysql.conf.d/mysqld.cnf
在[mysqld]下方添加
character-set-server=utf8

在这里插入图片描述
迁移数据库遇到的问题
rm -f 0001_initial.py
进入mysql数据库
delete from django_migrations where app=‘et’;
删除相应的生成的表格
drop et_xxx
运行:
python manage.py makemigrations et
python manage.py migrate et
ps:这样的话相当于新建数据库了

//登录时的验证
def login_sure(request):
   if request.method == "POST":
       user_name = request.POST.get('user', None)
       user_password = request.POST.get('passwd', None)
       if user_name and user_password:  # 确保用户名和密码都不为空
           user_name = user_name.strip()
           # 用户名字符合法性验证
           # 密码长度验证
           # 更多的其它验证.....
           try:
               user = Login.objects.get(login_name=user_name)
           except :
               return render(request, 'et/login.html', {'error_message': '登录失败,用户名错误,请联系管理员', })
           if user.login_passwd == user_password:
               return HttpResponseRedirect(reverse('event', args=(user_name,)))
   return render(request, 'et/login.html', {'error_message': '登录失败,密码误错误,请联系管理员', })

# 处理用户提交的数据
def event_sure(request,user_name):
   exclude_fields = ('学号', 'id')
   params = [f for f in Event1._meta.fields if f.name not in exclude_fields]
   sumit_data={}
   for msg in params:
       sumit_data[msg.name]=request.POST.get(msg.name, None)
   try:
       del_user = Event1.objects.filter(学号=user_name)
       if len(del_user) > 0:
           del_user.delete()
       sumit_data['学号'] = user_name
       Event1.objects.create(**sumit_data)
   except Login.DoesNotExist:
       return render(request, 'et/event_sure.html', {'error_message': '数据写入失败,请正确登录', })
   if sumit_data['学号']:
       del sumit_data['学号']
   return render(request, 'et/event_sure.html', {'data': sumit_data, 'succes': '提交完成', })
#管理界面
from django.contrib import admin

# Register your models here.
from .models import Login, Event1


def init(Ob):
   list_display1 = []
   exclude_fields = ('id',)
   params = [f for f in Ob._meta.fields if f.name not in exclude_fields]
   for msg in params:
       list_display1.append(msg.name)
   return list_display1


class LoginA(admin.ModelAdmin):
   list_filter = ['login_name']
   search_fields = ['login_name']
   list_display = tuple(init(Login))


class EventA(admin.ModelAdmin):
   search_fields = ['学号']
   list_display = tuple(init(Event1))


admin.site.register(Event1,EventA)
admin.site.register(Login, LoginA)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值