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)