START演示视频:
django新手
(登录 注册 增删查 已完成 简易)
一.登录功能、注册功能
1.没有注册账号,判断,提示该账户未注册,注册后写入数据库(mysql)
2.登录功能 --暂且提示登陆成功;空用户名提示、中文字符提示,不存在提示
登录模板层:
```python
```python
```html
<html>
<head>
<title>测试登录</title>
<style>
form
{
width:100%;
height:100%;
margin-top: 0px;
margin-bottom: 20px;
background:#008B8B;
}
div
{
display:inline-block;
padding-top: 255px;
padding-bottom: 255px;
padding-left: 1px;
padding-right: 1px;
}
</style>
</head>
<body>
<center>
<form method="post" action="/login_action/">
<h1>登录测试</h1>
<div>
用户名:<input name="username", type="text"><br>
密 码:<input name="password", type="password"><br>
{
{ error }}</br>
<button id="btn", type="submit">登录</button>
</div>
{% csrf_token %}
</form>
</center>
</body>
</html>
url
urlpatterns = [
path('admin/', admin.site.urls),
path('index/', views.index),
path('sign/', views.sign),
path('login/', views.login),
视图层
def login(request):
return render(request,'login.html',{
'test':request.method})
def login_action(request):
if request.method =='POST':
user = request.POST.get('username')
password = request.POST.get('password')
if len(user)== 0 or len(password)==0:
# response = HttpResponseRedirect('/login_right/')
# response.set_cookie('user', user, 3600)
# request.session['user'] = user
# return response
return render(request, 'login.html',{
'error':'用户名密码不能为空'})
else:
for _char in user:
if '\u4e00' <= _char <= '\u9fa5':
return render(request, 'sign.html',{
'error':'用户名不能包含中文字符'})
user_list = models.Admin.objects.all()
logger.debug('开始判断用户:{}{}'.format(user,password))
for judge_user in user_list:
if judge_user.user == user and judge_user.password == password:
response = HttpResponseRedirect('/login_right/')
response.set_cookie('user', user, 3600)
models.Admin.objects.create(user = user,password=password)
request.session['user'] = user
return response
else:
continue
@login_required
def login_right(request):
user =request.COOKIES.get('user','')
# user =request.session.get('user','')
return render(request,'login_action.html',{
'user':user}
模型层
class Student(models.Model):
"""
创建如下几个表的字段
"""
# 学号 primary_key=True: 该字段为主键
studentNum = models.CharField('学号', primary_key=True, max_length=15)
# 姓名 字符串 最大长度20
name = models.CharField('姓名', max_length=20)
# 年龄 整数 null=False, 表示该字段不能为空
age = models.IntegerField('年龄', null=False)
# 性别 布尔类型 默认True: 男生 False:女生
sex = models.BooleanField('性别', default=True)
# 手机 unique=True 该字段唯一
mobile = models.CharField('手机', unique=True, max_length=15)
# 创建时间 auto_now_add:只有在新增的时候才会生效
createTime =