《每天5分钟教你用Django构建一个管理系统》第一篇:登录注册
引言
欢迎来到这个系列教程的第一篇——我们将每天花费5分钟,逐步构建一个功能完备的Web管理系统。在这个过程中,我们会从基础开始,深入到更高级的概念。今天我们将从登录和注册功能入手,这是任何管理系统的核心部分。
环境准备
在开始之前,请确保你的开发环境中安装了以下工具:
- Python
- pip
- Django
- 一个代码编辑器(如VSCode或PyCharm)
- 一个数据库系统(本教程使用SQLite)
安装Django
通过pip安装Django:
pip install django
创建Django项目
- 创建一个新的Django项目:
django-admin startproject mymanagementsystem
- 进入项目目录:
cd mymanagementsystem
创建应用
- 创建一个Django应用:
python manage.py startapp accounts
- 注册应用到
mymanagementsystem/settings.py
中的INSTALLED_APPS
。
使用Django内置的用户认证系统
Django提供了一个功能完备的用户认证系统,包括用户管理、权限控制等。
创建表单
在accounts/forms.py
中创建用户注册和登录表单:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2')
class LoginForm(AuthenticationForm):
username = forms.CharField(label='Username', max_length=63)
password = forms.CharField(label='Password', widget=forms.PasswordInput)
创建视图
在accounts/views.py
中创建注册和登录视图:
from django.shortcuts import render, redirect
from django.contrib.auth import login, authenticate
from .forms import SignUpForm, LoginForm
def signup(request):
if request.method == 'POST':
form = SignUpForm(request.POST)
if form.is_valid():
user = form.save()
login(request, user)
return redirect('home')
else:
form = SignUpForm()
return render(request, 'accounts/signup.html', {'form': form})
def login_view(request):
if request.method == 'POST':
form = LoginForm(data=request.POST)
if form.is_valid():
user = authenticate(username=form.cleaned_data['username'],
password=form.cleaned_data['password'])
if user is not None:
login(request, user)
return redirect('home')
else:
form = LoginForm()
return render(request, 'accounts/login.html', {'form': form})
配置URLs
在accounts/urls.py
中配置路由:
from django.urls import path
from . import views
urlpatterns = [
path('signup/', views.signup, name='signup'),
path('login/', views.login_view, name='login'),
]
并在项目的主urls.py
文件中包含accounts/urls.py
。
创建模板
创建模板目录
在accounts
应用下创建一个templates
目录和一个名为accounts
的子目录。
accounts/
│
├── templates/
│ └── accounts/
│ ├── login.html
│ └── signup.html
│
└── ...
创建注册模板
在accounts/templates/accounts/signup.html
中,创建注册表单的HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Sign Up</title>
</head>
<body>
<h2>Register</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign up</button>
</form>
</body>
</html>
创建登录模板
在accounts/templates/accounts/login.html
中,创建登录表单的HTML代码:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Login</title>
</head>
<body>
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</body>
</html>
静态文件管理
配置静态文件(CSS, JavaScript)的服务。
用户认证中间件
确保在mymanagementsystem/settings.py
中启用了用户认证中间件。
测试
测试注册和登录功能是否正常工作。
部署
将项目部署到服务器上。
结语
恭喜你完成了这个系列教程的第一篇!通过本教程,你已经学会了如何使用Django构建一个带有注册和登录功能的Web管理系统的基础部分。Django的内置用户认证系统大大简化了开发流程。在接下来的教程中,我们将继续构建更多的功能。
进阶资源
- Django官方文档:https://www.djangoproject.com/
- Django用户认证文档:https://docs.djangoproject.com/en/3.2/topics/auth/default/
如果你有任何问题或需要进一步的帮助,请随时联系我们。明天,我们将深入探讨如何扩展用户模型,并添加更多用户特定的功能。敬请期待!
标签:form,第一篇,创建,教你用,request,Django,accounts,login From: https://blog.csdn.net/eclipsercp/article/details/139398611