django学习日志(View视图)第一部分:视图语法:路由参数+反向解析
-
创建一个工程 WhatsView
django-admin.exe startproject WhatsView . -
创建应用 App
python manage.py startapp App -
注册app
WhatsView\WhatsView\settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'App',
]
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^app/', include('App.urls',namespace='appns')),
]
- WhatsView\App\urls.py
from django.conf.urls import url, include
# from django.contrib import admin
try:
from App import admin, views
except:
from venv.WhatsView.App import admin, views
urlpatterns = [
url(r'^positionargs/(\d+)/(\d+)/(\d+)', views.positionArgs,name='pafunc'),
]
- WhatsView\App\views.py
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def positionArgs(request,arg1,arg2,arg3):
return HttpResponse('三个参数依次为%s,%s,%s' %(arg1,arg2,arg3))
- 启动服务 python manage.py runserver
- 打开 http://127.0.0.1:8000/app/positionargs/123/456/789
- 定义路由关键字参数
- WhatsView\App\urls.py
urlpatterns = [
url(r'^kwargs/(?P<year>\d+)/(?P<month>\d+)/(?P<date>\d+)', views.keyWordArgs, name='kwfunc'),
]
- WhatsView\App\views.py
def keyWordArgs(request,date,month,year):
return HttpResponse('用户输入的是%s年%s月%s日' %(year,month,date))
正向解析
- 新建一个模板文件夹 templates
- 设置模板文件夹路径
- WhatsView\WhatsView\settings.py
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')],
...
...
- 新建一个html文件
- WhatsView\templates\links.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li><a href="/app/positionargs/123/456/233/">查看位置路由参数</a></li>
<li><a href="/app/kwargs/2008/8/8/">查看关键字路由参数</a></li>
</ul>
</body>
</html>
- 定义一个访问 links.html 的路由
- WhatsView\App\urls.py
urlpatterns = [
url(r'^links/', views.gotoLinksPage, name='linkfunc'),
]
- WhatsView\App\views.py
def gotoLinksPage(request):
return render(request,'links.html')
反向解析
- WhatsView\templates\links.html
<ul>
<li><a href="/app/positionargs/123/456/233/">查看位置路由参数</a></li>
<li><a href="/app/kwargs/2008/8/8/">查看关键字路由参数</a></li>
<li><a href="{% url 'appns:pafunc' 520 666 233 %}">查看位置路由参数</a></li>
<li><a href="{% url 'appns:kwfunc' year=2008 month=7 date=8 %}">查看关键字路由参数</a></li>
</ul>