005_创建用户账户
/* 一: 创建程序 1 创建 2 settings 3 urls 二: 创建账户 1 url 2 模板 3 入口按钮 4 页面显示 三: 退出账户 1 模板 2 入口按钮 3 页面显示 四: 注册账户 1 url 2 views 3 模板 4 入口按钮 5 页面显示 五: 完整code */
一: 创建程序
1 创建
1 输入命令: python manage.py startapp users
2 创建应用程序: users
2 settings
1 把应用程序users包含项目里。
2 输入命令: 'users',
3 urls
1 输入命令: path('users/', include('users.urls')),
二: 登录
1 url
1 创建文件:urls.py
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
''' 应用程序users定义URL模式 ''' from django.urls import path, include app_name = 'users' urlpatterns = [ # 包含默认的身份验证URL path('', include('django.contrib.auth.urls')), ]
2 模板
1 创建目录和文件: login
2 编写模板code。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
{% block content %} {% if form.errors %} <p>Your username and password didn't match.Please try again. </p> {% endif %} <form method="post" action="{% url 'users:login' %}"> {% csrf_token %} {{ form.as_p}} <button name="submit">Log in</button> <input type="hidden" name="next" value="{% url 'learning_logs:index' %}" /> </form> {% endblock content %}
3 入口按钮
1 修改Code。
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
<p> <a href="{% url 'learning_logs:index' %}">Learning Log</a> - <a href="{% url 'learning_logs:topics' %}">Topics</a> {% if user.is_authenticated %} Hello, {{ user.username }}. <a href="{% url 'users:logout' %}">Log out</a> {% else %} <a href="{% url 'users:login' %}">Log in</a> {% endif %} </p> {% block content %} {% endblock content %}
4 页面显示
1 登录页面显示。
三: 退出账户
1 模板
1 创建文件: logged_out
{% extends "learning_logs/base.html" %} {% block content %} <p> You have been logged out. Thank you for visiting!</p> {% endblock content %}
2 入口按钮
1 添加代码:
<a href="{% url 'users:logout' %}">Log out</a>
3 页面显示
1 按钮显示。
1 退出后显示。
四: 注册账户
1 url
1 添加新的url。
from . import views urlpatterns = [ # 注册页面 path('register/', views.register, name='register'), ]
2 views
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
from django.shortcuts import render, redirect from django.contrib.auth import login from django.contrib.auth import UserCreationForm # Create your views here. def register(request): ''' 注册新用户 ''' if request.method != 'POST': # 显示空的注册表单 form = UserCreationForm() else: # 处理填写好的表单 form = UserCreationForm(data=request.POST) if form.is_valid(): new_user = form.save() # 让用户自动登录,再重定向到主页 login(request, new_user) return redirect('learning_logs:index') # 显示空表单或指出表单无效 context = {'form':form} return render(request, 'registration/register.html', context)
3 模板
1 创建文件:register.html
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
{% extends "learning_logs/base.html" %} {% block content %} <form method="post" action="{% url 'users:register' %}"> {% csrf_token %} {{ form.as_p }} <button name="submit">Register</button> <input type="hidden" name="next" value="{% url 'learning_logs:index' %}" /> </form> {% endblock content %}
4 入口按钮
1 添加Code:
<a href="{% url 'users:register' %}">Register</a> -
5 页面显示
五: 完整code
压缩包: 链接