• 博客基础_django入门_python从入门到实践_用户登陆、注销与注册


    要求

      登陆、注销系统用户;注册新用户

      urls.py  views.py   html

      login.html  logout.html   regiser.html

    截图loading

    代码

    users

     1 # learning_log/   
     2     python manage.py startapp users
     3     ls users
     4 
     5 # settings.py     learning_log/ users/
     6     --snip
     7     INSTALL_APPS=[
     8         'users',
     9     ]
    10 
    11 # urls.py    users/
    12 urlpatterns=[
    13     ...
    14     url('^users/$', 'users.urls', namespace='urls')
    15 ]
    View Code

    urls.py  users/

     1 from django.conf.urls import urls
     2 from django.contrib.auth.views import login
     3 
     4 from . import views
     5 
     6 urlpatterns=[
     7     url(r'^login/$', login, {'template_name':'users/login.html'}, name='login'),
     8     url(r'^logout/$', views.logout_view, name='logout'),
     9     url(r'^register/$', views.register, name='register')
    10 ]
    View Code

    views.py   users/

     1 from django.shortcuts import render
     2 from django.http import HttpResponseRedirect 
     3 from django.core.urlresolvers import reverse
     4 from django.contrib.auth import login, logout, authenticate
     5 from django.contrib.auth.forms import UserCreationForm
     6 
     7 def logout_view(request):
     8     logout(request)
     9     return HttpResponseRedirect(reverse('learning_logs:index'))
    10 
    11 def register(request):
    12     if request.method != 'POST':
    13         form = UserCreationForm()
    14     else:
    15         form = UserCreationForm(data=request.POST)
    16         if form.is_valid():
    17             new_user = form.save()
    18             authenticated_user = authenticate(username=new_user.username, password=request.POST['password1'])
    19             login(request, authenticated_user)
    20             return HttpResponseRedirect(reverse('learning_logs:index'))
    21     context = {'form':form}
    22     return render(request, 'users/register.html', context)
    View Code

    login.html  users/templates/users/

     1 {% extends 'learning_logs/base.html' %}
     2 
     3 {% block content %}
     4     {% if form.erros %}
     5         <p>Your username and password didn't match, please try again.</p>
     6     {% endif %}
     7         <form action="{% url 'users:login' %}">
     8             {% csrf_token %}
     9             {{ form.as_p }}
    10             <button name="submit">login in</button>
    11             <input type="hidden" name="next" value="{% url 'learning_log:index' %}" />
    12         </form>
    13 {% endblock content %}
    View Code

    register.html  users/templates/users/

     1 {% extends 'learning_logs/base.html' %}
     2 
     3 {% block content %}
     4     {% if form.erros %}
     5         <p>Your username and password didn't match, please try again.</p>
     6     {% endif %}
     7         <form action="{% url 'users:login' %}">
     8             {% csrf_token %}
     9             {{ form.as_p }}
    10             <button name="submit">login in</button>
    11             <input type="hidden" name="next" value="{% url 'learning_log:index' %}" />
    12         </form>
    13 {% endblock content %}
    View Code

    base.html  learning_logs/templates/learning_logs/

    View Code
  • 相关阅读:
    特殊类
    Statement和PrepareStatement有什么区别?
    关于${pageContext.request.contextPath }对于工程中的那个目录
    IDEA JSP中报错cannot resolve method println的解决方案
    关于${pageContext.request.contextPath}的理解
    IDEA中引用不到HttpServlet的解决方案
    Serializable接口的意义和用法
    idea Cannot resolve method (最新2020解决办法)
    IDEA Artifacts:Error during artifact deployment问题解决(狂神SSM整合里,报404错误方案)
    IDEA设置自动导入包方法
  • 原文地址:https://www.cnblogs.com/dignity/p/9834007.html
Copyright © 2020-2023  润新知