Django 1.11 用户注册登录(2) 用自带的auth模块
来源:互联网 发布:淘宝上有爱弹幕账号么 编辑:程序博客网 时间:2024/04/20 04:31
使用自带的auth app,我们不需要写models文件,添加注册登录这个功能,我们就要用到views ,url ,templates。
settings.py 设置
在app下 settings.py 下 INSTALLED_APPS 字段 添加 ‘django.contrib.auth’,
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'bootstrap_toolkit', 'django.forms', 'taobao',]
在终端 运行 python manage.py makemigrations
python manage.py migrate
可以在数据库中看到自动生成的表格。
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属性的全局作用。
创建一个表单的样式
目的是从前端格式化读取数据
在app 下创建一个 forms.py文件
from django import formsclass UserForm(forms.Form): username = forms.CharField(max_length=30) password = forms.CharField(max_length=50)
views 视图
from django.contrib import authfrom django.contrib.auth.models import Userfrom django.contrib.auth import authenticatefrom django.contrib.auth.decorators import login_required# 第四个是 auth中用户权限有关的类。auth可以设置每个用户的权限。from .forms import UserForm#注册@csrf_exemptdef 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 = auth.authenticate(username = username,password = password) if user: context['userExit']=True return render(req, 'register.html', context) #添加到数据库(还可以加一些字段的处理) user = User.objects.create_user(username=username, password=password) user.save() #添加到session req.session['username'] = username #调用auth登录 auth.login(req, user) #重定向到首页 return redirect('/') else: context = {'isLogin':False} #将req 、页面 、以及context{}(要传入html文件中的内容包含在字典里)返回 return render(req,'register.html',context)#登陆@csrf_exemptdef 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 = authenticate(username = username,password = password) if user: #比较成功,跳转index auth.login(req,user) req.session['username'] = username return redirect(next_to) 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 logout_view(req): #清理cookie里保存username auth.logout(req) 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'),
阅读全文
0 0
- Django 1.11 用户注册登录(2) 用自带的auth模块
- Django build_in 登录注册模块 注销时页面是admin模块自带的注销页面的原因
- laravel 5.2 注册登录(自带) php artisan make:auth
- Django权限系统auth模块详解 转自:原文出处 auth模块是Django提供的标准权限管理系统,可以提供用户身份认证, 用户组和权限管理。 auth可以和admin模块配合使用, 快速建
- 09 实现Django自带的注册\登录\退出登录(表单)功能
- Django自带加密模块的使用
- Yii2本身自带实现用户注册,验证,登录
- Django Auth注册
- Django auth注册
- Django auth登录
- 验证django 用户认证auth模块常见方法使用.
- Laravel 5.1 集成 Auth 验证用户注册登录示例
- 用户注册/登录模块实践
- Django笔记---用户注册和登录验证(2)--数据库储存
- django开发(3)-用户登录注册和认证
- 我的Laravel学习之路之我的Laravel学习之路之用户注册和登录 Auth
- python django 用户注册验证登录。。。
- eShop电子商城的SSH实现的用户模块(1)登录和注册Bean(Version 1.0)
- hash表的相关知识
- AutowireCapableBeanFactory 为非springbean注入bean
- Spark2.x学习笔记:2、Scala简单例子
- 架构师入门笔记十 Netty5快速入门
- 一个案例看品牌认知重塑与实现
- Django 1.11 用户注册登录(2) 用自带的auth模块
- 网络流24题-6
- Java语言设计模式之享元模式(Flyweight)
- 关于c++的class(偏c++11以前,构造、静态成员、const、初始化列表、友元、内联、template)
- 存储介质访问速度比较 来自Google工程师Jeff Dean的分享,仅供参考
- 请说出 Java 中字节流,字符流的区别?
- Android---RecyclerView简单实用(下)之横向水平滚动
- POI事件模式读取Excel 2003文件
- 4.25 leetcode -25 climbing-stairs