Django注册用户实例
学习就要分享,今天摸索半天,做了个Django模拟用户注册实例,注册数据直接写入数据库.这里要注意:
由于我这创建了一个名叫book的APP。
所以下面的很多地方出现book字样。有些地方命名不够合理。
数据库及models.py
设置连接好数据库后,就可以如下操作:
数据库使用mysql数据库,数据库模型如下:
class User(models.Model):
username=models.CharField(max_length=100,null=False)
password=models.CharField(max_length=100,null=False)
class Meta:
db_table='user'
数据库通过迁移生成到MySQL数据库中。
使用下列工具
命令主要有两个:
命令执行完毕后数据库中生成user表格
forms.py
class UserForm(forms.Form):
username=forms.CharField(label="用户名",max_length=100,min_length=2)
password=forms.CharField(label='密码',max_length=100,min_length=6)
```
## index.html
在template中建一个index.html文件,这个主要是用来提示的。模拟注册时候跳转到注册页面,代码如下:
view.py
视图是最重要的代码区域。
首先导入模型中的User类
from django.shortcuts import render,HttpResponse
from django.views import View
from .forms import UserForm
from .models import User
def index(request):
return render(request,'index.html')
class BookIndex(View):
def get(self, request):
form = UserForm()
return render(request,'user.html',context={'froms':form})
def post(self,request,):
form = UserForm(request.POST)
if form.is_valid():
username = form.cleaned_data.get("username")
password = form.cleaned_data.get('password')
temp=User.objects.filter(username=username)
if len(temp)==0:
user = User(username=username, password=password)
user.save()
else:
return HttpResponse("此用户名已经注册")
return HttpResponse("插入成功")
else:
print(form.errors)
这里BookIndex名字没有取好,
urls.py
from django.contrib import admin
from django.urls import path
from book import views
from book.views import BookIndex
urlpatterns = [
path('admin/', admin.site.urls),
path('',views.index),
path('user/',BookIndex.as_view(),name='user'),
]
user.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<form action=" " method="post">
<table>
{{ froms.as_table }}
<tr>
<td></td>
<td><input type="submit" value="提交"></td>
</tr>
</table>
</form>
</body>
</html>
执行效果
首页
注册页
新用户
如果用户有重复: