django的用户认证实现过程

1.在url.py里增加,(r'^accounts/login/$', 'django.contrib.auth.views.login'),这里,处理url的view,是系统自带的。django.contrib.auth.views.login的功能有以下2个:

    a.若为GET,它在同一个url中显示一个login form;

    b.若为POST,它将尝试登录。如果login成功,它将重新定向到next所指定的url中,若不成功,将重新显示登录框。


2.编写login的 template。 在默认情况下,这个template的路径应该是:registration/login.html.如果不想使用默认的路径,在1中可以使用(r'^accounts/login/$', 'django.contrib.auth.views.login', {'template_name': 'myapp/login.html'}),也就是说,第3个参数可以指定login template的路径。login.html的body部分如下:

 

[xhtml]  view plain copy
  1. <body>   
  2.   <h1>User Login</h1>   
  3.   {% if form.errors %}   
  4.     <p>Your username and password didn't match.   
  5.       Please try again.</p>   
  6.   {% endif %}   
  7.   <form method="post" action=".">   
  8.     <p><label for="id_username">Username:</label>   
  9.       {{ form.username }}</p>   
  10.     <p><label for="id_password">Password:</label>   
  11.       {{ form.password }}</p>   
  12.     <input type="hidden" name="next" value="/" />   
  13.     <input type="submit" value="login" />   
  14.   </form>   
  15. </body>  

第12行就是指定当login失败时要重定向的路径。

以上两步就可以完成一个简单的认证过程了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Django是一个高效、灵活、易于使用的Web框架,它提供了一些内置的应用程序来处理用户身份验证和用户管理。在Django中,用户登录和注册可以通过Django内置的用户认证系统来实现。 要使用Django内置的用户认证系统,需要执行以下步骤: 1. 在settings.py中添加'django.contrib.auth'到INSTALLED_APPS列表中。 2. 在urls.py中添加视图函数,用于处理用户登录和注册。 3. 创建模板文件,用于呈现登录和注册表单。 4. 创建视图函数,用于处理表单提交,验证用户输入,如果验证通过则将用户重定向到其个人资料页面。 下面是一个简单的例子来演示如何使用Django实现用户登录和注册: 1.在settings.py文件中添加'django.contrib.auth'到INSTALLED_APPS列表中: ```python # settings.py INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', ] ``` 2. 在urls.py中添加视图函数,用于处理用户登录和注册: ```python # urls.py from django.urls import path from .views import login_view, register_view urlpatterns = [ path('login/', login_view, name='login'), path('register/', register_view, name='register'), ] ``` 3. 创建模板文件,用于呈现登录和注册表单: ```html <!-- login.html --> {% extends 'base.html' %} {% block content %} <h2>Login</h2> <form method="POST"> {% csrf_token %} {{ form.as_p }} <button type="submit">Login</button> </form> {% endblock %} ``` ```html <!-- register.html --> {% extends 'base.html' %} {% block content %} <h2>Register</h2> <form method="POST"> {% csrf_token %} {{ form.as_p }} <button type="submit">Register</button> </form> {% endblock %} ``` 4. 创建视图函数,用于处理表单提交,验证用户输入,如果验证通过则将用户重定向到其个人资料页面。 ```python # views.py from django.shortcuts import render, redirect from django.contrib.auth.forms import AuthenticationForm, UserCreationForm from django.contrib.auth import authenticate, login def login_view(request): if request.method == 'POST': form = AuthenticationForm(request=request, data=request.POST) if form.is_valid(): username = form.cleaned_data.get('username') password = form.cleaned_data.get('password') user = authenticate(username=username, password=password) if user is not None: login(request, user) return redirect('profile') else: form = AuthenticationForm() return render(request, 'login.html', {'form': form}) def register_view(request): if request.method == 'POST': form = UserCreationForm(request.POST) if form.is_valid(): user = form.save() login(request, user) return redirect('profile') else: form = UserCreationForm() return render(request, 'register.html', {'form': form}) ``` 以上就是一个简单的Django用户登录和注册实现过程。如果您有任何问题,请随时提出。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值