文章目录
注册界面的实现
实现注册界面,包括以下五个步骤
1、创建用户模块子应用,注册用户子应用
1.1 创建用户子应用
在项目的虚拟环境 blog 中创建用户模块
PS E:\pythonSave\blog\blog_python\blog> workon
Pass a name to activate one of the following virtualenvs:
==============================================================================
blog
PS E:\pythonSave\blog\blog_python\blog> workon blog
PS E:\pythonSave\blog\blog_python\blog> python manage.py startapp users
PS E:\pythonSave\blog\blog_python\blog>
1.2 注册用户子应用
在settings.py
中找到INSTALLED_APPS
,追加注册
# Application definition
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
# 子应用注册
'users.apps.UsersConfig',
]
2、创建模板目录,设置模板路径
2.1 创建模板目录
2.2 设置模板路径
在settings.py
中找到TEMPLATES
,设置模板路径os.path.join(BASE_DIR, 'templates')
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
# 配置模板路径
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
'OPTIONS': {
'context_processors': [
'django.template.context_processors.debug',
'django.template.context_processors.request',
'django.contrib.auth.context_processors.auth',
'django.contrib.messages.context_processors.messages',
],
},
},
]
3、定义用户注册视图
在templates
中添加注册页面register.html
(包含完整的页面内容),
然后在子用户users>views.py
页面中定义注册视图
from django.shortcuts import render
# Create your views here.
# 注册视图
from django.views import View
class RegisterView(View):
def get(self, request):
return render(request, 'register.html')
4、定义用户注册路由
1、在users中新建一个urls.py,用于管理子应用的视图路由
# 用于管理子应用视图的路由
from django.urls import path
from users.views import RegisterView
urlpatterns = [
# 第一个参数:路由;第二个参数:视图函数名
path('register/', RegisterView.as_view(), name='register')
]
2、在blog>urls.py
中进行子应用路由引导
from django.contrib import admin
from django.urls import path, include
urlpatterns = [
path('admin/', admin.site.urls),
# 子应用路由引导
# include参数接收一个元组:urlconf_module, app_name
# urlconf_module:子应用路由, app_name:子应用名字
# namespace命名空间,可以防止不同子应用间的路由冲突
path('', include(('users.urls', 'users'), namespace='users'))
]
到这里,运行项目,register页面是可以正常访问和显示的
5、修改静态文件加载方式
修改前:html页面没有引入css文件和js文件,所以样式错乱
<link rel="stylesheet" href="demo.css">
<link rel="stylesheet" href="iconfont.css">
<script src="iconfont.js"></script>
修改后:正确引入css文件和js文件,页面样式正常
{% load staticfiles %}
<link rel="stylesheet" href="{% static 'demo.css' %}">
<link rel="stylesheet" href="{% static 'iconfont.css' %}">
<script src="{% static 'iconfont.js' %}"></script>