子应用视图函数文件 views.py
编辑子应用视图函数文件 views.py, 导入 View 木块 及添加类视图:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| from django.views import View ...
...
class RegisterView(View): """ http_method_names = ['get', 'post', 'delete', ...] 定义的视图函数名,必须遵循 http_method_names 里面的方法 """
def get(self, requeest):
return render(requeest, 'register.html')
def post(self, request): username = request.POST.get('username') password = request.POST.get('password') return HttpResponse('输入的用户名及密码分别为:%s %s'%(username, password))
|
子应用路由文件 urls.py
编辑子应用下的路由文件 urls.py, 在 urlpatterns 列表中添加 :
1 2 3 4 5 6 7 8 9
| from django.urls import path, re_path from . import views
urlpatterns = [ path('test/', views.login), ... path('register/', views.RegisterView.as_view()), ]
|
模板文件
创建模板目录
在 django 项目目录下(注意:非任何子应用目录,而是主项目目录下)创建目录 templates:
创建模板文件
在上面创建的 templates 目录下创建模板文件 register.html ,内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form method="post"> username:<input type="text" id="username" name="username"><br> password:<input type="password" id="password" name="password"><br> 提交:<button type="submit">注册</button> </form> </body> </html>
|
项目主目录下的 settings.py
编辑 django 主项目项目包下的 settings.py 文件,在 TEMPLATES 列表中添加创建的模板目录路径,如:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| ...
TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [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', ], }, }, ]
...
|
测试
在浏览器中输入 url: http://192.168.3.254:8001/users/register/ (注意:这里的IP 和 路由根据自己的实际情况进行修改), 访问如下:
1.打开上面 URL. 如果能访问到上面写的 html 页面,则代表模板、路由及类视图中的 get 调用都正常,如下图:
2.随意对 username 和 password 输入内容,然后点击下面的注册按钮:
3.点击注册按钮后,如果页面有跳转且正确的输出了你上面输入的内容,则代表调用类视图函数中的 Post 成功,如图: