测试 Django 版本为:2.0.3, 只是显示用于注册页面,其他连数据库及登录等功能未实现。
Step 1: 创建 app
app 名称叫做 accounts
, 创建app:python manage.py startapp accounts
Step 2: 修改 setting.py
在列表INSTALLED_APPS 增加一行 accounts
:
# my_project/settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts',
]
Step 3: 修改 urls.py:
增加和两个accounts
相关的path:
# my_project/urls.py
from django.contrib import admin
from django.urls import path, include
from django.views.generic.base import TemplateView
urlpatterns = [
path('', TemplateView.as_view(template_name='home.html'), name='home'),
path('admin/', admin.site.urls),
path('accounts/', include('accounts.urls')),
path('accounts/', include('django.contrib.auth.urls')),
]
Step 4: 增加文件 accounts/urls.py
# accounts/urls.py
from django.urls import path
from . import views
urlpatterns = [
path('signup/', views.SignUp.as_view(), name='signup'),
]
Step 5: 修改 accounts/view.py
# accounts/views.py
from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic
class SignUp(generic.CreateView):
form_class = UserCreationForm
success_url = reverse_lazy('login')
template_name = 'signup.html'
Step 6: 创建templates文件夹
路径: mysite\accounts\templates,增加 signup.html
<!-- templates/signup.html -->
{% block title %}Sign Up{% endblock %}
{% block content %}
<h2>Sign up</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Sign up</button>
</form>
{% endblock %}
Step 7: 查看注册页面
使用命令:python manage.py runserver 启动 server
访问路径 http://127.0.0.1:8000/accounts/signup/
可以看到如下页面:
1 https://wsvincent.com/django-user-authentication-tutorial-signup/