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

''' 应用程序users定义URL模式 '''

from django.urls import path, include

app_name = 'users'

urlpatterns = [
    # 包含默认的身份验证URL
    path('', include('django.contrib.auth.urls')),
]
urls.py

 

  2 模板

1 创建目录和文件: login

2 编写模板code。

{% 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 %}
View Code

 

   3 入口按钮

1 修改Code。

<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 %}
View Code

 

  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

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)
View Code

 

  3 模板

1 创建文件:register.html

{% 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 %}
register.html

 

  4 入口按钮

1 添加Code:

<a href="{% url 'users:register' %}">Register</a> -

 


  5 页面显示

 

五: 完整code 

    压缩包: 链接

 

posted @ 2023-06-11 22:35  火焰马  阅读(18)  评论(0编辑  收藏  举报