下面我会详细讲解“Django 框架实现的用户注册、登录、退出功能示例”的完整攻略。
示例一:用户注册
步骤一:新建 Django 项目
首先,创建一个 Django 项目,然后在 settings.py
文件中配置数据库。在命令行中运行以下命令:
$ django-admin startproject yourprojectname
步骤二:配置数据库
在 settings.py
文件中配置数据库,例如:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
步骤三:创建用户模型
在 models.py
文件中定义一个用户模型:
from django.contrib.auth.models import AbstractUser
class User(AbstractUser):
pass
步骤四:定义用户注册表单
在 forms.py
文件中定义一个用户注册表单:
from django import forms
from django.contrib.auth.forms import UserCreationForm
from .models import User
class RegistrationForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
步骤五:创建用户注册视图
在 views.py
文件中创建一个用户注册视图:
from django.shortcuts import render, redirect
from django.contrib.auth import login
from .forms import RegistrationForm
def registration(request):
if request.method == 'POST':
form = RegistrationForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = RegistrationForm()
return render(request, 'registration.html', {'form': form})
步骤六:创建用户注册视图模板
在 templates
目录下创建 registration.html
模板文件:
{% extends "base.html" %}
{% block content %}
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign Up</button>
</form>
{% endblock %}
现在,你可以在浏览器中访问 http://localhost:8000/registration/
进行用户注册了。
示例二:用户登录和退出
步骤一:创建用户登录视图
在 views.py
文件中创建一个用户登录视图:
from django.shortcuts import render, redirect
from django.contrib.auth import authenticate, login, logout
def user_login(request):
if request.method == 'POST':
username = request.POST['username']
password = request.POST['password']
user = authenticate(request, username=username, password=password)
if user is not None:
login(request, user)
return redirect('home')
else:
# Return an 'invalid login' error message.
pass
return render(request, 'login.html')
步骤二:创建用户登录视图模板
在 templates
目录下创建 login.html
模板文件:
{% extends "base.html" %}
{% block content %}
<form method="post" action="{% url 'login' %}">
{% csrf_token %}
<label for="username">Username:</label>
<input type="text" name="username" id="username">
<label for="password">Password:</label>
<input type="password" name="password" id="password">
<button type="submit">Log In</button>
</form>
{% endblock %}
步骤三:创建用户退出视图
在 views.py
文件中创建一个用户退出视图:
from django.contrib.auth import logout
def user_logout(request):
logout(request)
return redirect('home')
步骤四:创建用户退出视图模板
在 templates
目录下创建一个链接用于用户退出:
{% extends "base.html" %}
{% block content %}
<p>You are logged in as {{ user.username }}.</p>
<a href="{% url 'logout' %}">Log out</a>
{% endblock %}
现在,你可以在浏览器中访问 http://localhost:8000/login/
进行用户登录了,登录成功后,你也可以在 http://localhost:8000/
中找到一个用户退出链接,用于退出当前登录。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:django 框架实现的用户注册、登录、退出功能示例 - Python技术站