您的位置:首页 > 编程语言 > Go语言

Django1.11 用户注册登录(1)

2017-07-22 12:06 337 查看
添加注册登录这个功能,我们就要用到models ,views ,url ,templates。

templates 模板

我们先写两个 html 页面。

register

<form action="{% url 'register' %}" method="post" accept-charset="utf-8"enctype="multipart/form-data" >
{% csrf_token %}
<input type="text" name="username"id="username" placeholder="请输入手机号" >
<input type="password"  name="password" id="password" placeholder="请输入6-12位密码" >
<input type="submit" class="submit" value="立即注册">
</form>


login

<form action="{% url 'login' %}" method="post" accept-charset="utf-8" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" name="username" id="username" placeholder="手机号码" >
<input type="password" name="password" id="password" placeholder="登陆密码" value="" >
<input type="submit" value="立即登录">
</form>


将以上表单贴入html

action=”{% url ‘login’ %}” 以及action = {% url ‘register’ %},关联的是 urls.py 文件中 url()的name属性的全局作用。

models.py 创建数据库表格

from django.db import models

# Create your models here.
class User(models.Model):
username = models.CharField(max_length=21)
password= models.CharField(max_length=21)


创建一个User表格,再数据库里的表格名 为 APP名 + User。如app 名为 taobao , 表格名为 taobao_user

创建一个表单的样式

在app 下创建一个 forms.py文件

from django import forms

class UserForm(forms.Form):
username = forms.CharField(max_length=30)
password = forms.CharField(max_length=50)


views 视图

from taobao.models import User
# taobao 是 app名
from .forms import UserForm

#注册
@csrf_exempt
def register_view(req):
context = {}
if req.method == 'POST':
form = UserForm(req.POST)
if form.is_valid():
#获得表单数据
username = form.cleaned_data['username']
password = form.cleaned_data['password']

#添加到数据库(还可以加一些字段的处理)
User.objects.create(username=username, password=password)
#添加到session
req.session['username'] = username
#重定向到首页
return redirect('/')
else:
context = {'isLogin':False}
#将req 、页面 、以及context{}(要传入html文件中的内容包含在字典里)返回
return  render(req,'register.html',context)

#登陆
@csrf_exempt
def login_view(req):
context = {}
if req.method == 'POST':
form = UserForm(req.POST)
if form.is_valid():
#获取表单用户密码
username = form.cleaned_data['username']
password = form.cleaned_data['password']
#获取的表单数据与数据库进行比较
user = User.objects.filter(username = username,password = password)
if user:
#比较成功,跳转index
req.session['username'] = username
return redirect('/')
else:
#比较失败,还在login
context = {'isLogin': False,'pawd':False}
return render(req, 'login.html', context)
else:
context = {'isLogin': False,'pswd':True}
return render(req, 'login.html', context)

#登出
def lo
4000
gout_view(req):
#清理cookie里保存username
req.session.flush()
return redirect('/')


urls.py

直接上代码,name 中对应templates 中的 表单中的action

url(r'^login$', views.login_view,name='login'),
url(r'^logout', views.logout_view),
url(r'^register$', views.register_view,name='register'),
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: