项目及应用如下:
创建简单应用流程:
- 第一步:编辑myblog.vidws.py
每个响应对应一个函数,函数必须返回一个响应;
函数必须存在一个参数,一般约定为request;
每一个响应(函数)对应一个URL。
- 第二步:编辑mysite.urls.py
每个URL都以url的形式写出来;
url函数存放在urlpatterns列表中;
url函数三个参数:URL(正则),对应方法,名称。
- 第三步:启动服务器 >python manage.py runserver 9999
- 第四步:浏览器查看 http://localhost:9999/index/
代码:
myblog.vidws.py
from django.http import HttpResponse
# Create your views here.
def index(request):
return HttpResponse("Hello, world. You're at the myblog index.")
mysite.urls.py
from django.contrib import admin
from django.conf.urls import url
import myblog.views as mv
urlpatterns = [
url('^admin/', admin.site.urls),
url('^index/', mv.index),
]
浏览器响应:
优化以上的URL配置:
对于多个应用时,根目录下的mysite/urls.py文件过于庞大,不好维护。
解决方法:
第一步:创建应用目录下myblog/urls.py文件
第二步:修改根目录下mysite/urls.py文件【引入include】
第三步:浏览器访问
注意事项:
根目录mysite/urls.py针对APP配置的URL名称,是该APP所有URL的总路径
配置URL时注意正则表达式结尾符号$和/
代码:
myblog/urls.py
from django.conf.urls import url
from . import views
urlpatterns = [
url('index', views.index), #url('^index/$', views.index),#/不能丢
]
mysite/urls.py
"""mysite URL Configuration
The `urlpatterns` list routes URLs to views. For more information please see:
https://docs.djangoproject.com/en/2.0/topics/http/urls/
Examples:
Function views
1. Add an import: from my_app import views
2. Add a URL to urlpatterns: path('', views.home, name='home')
Class-based views
1. Add an import: from other_app.views import Home
2. Add a URL to urlpatterns: path('', Home.as_view(), name='home')
Including another URLconf
1. Import the include() function: from django.urls import include, path
2. Add a URL to urlpatterns: path('blog/', include('blog.urls'))
"""
from django.contrib import admin
from django.conf.urls import url,include
urlpatterns = [
url('^admin/', admin.site.urls),
url('^myblog/', include('myblog.urls')),
]
浏览器访问: http://localhost:9999/myblog/index/
修改访问路径,不需要太长的,可以修改根目录的,也可以修改应用目录下的,此处修改应用目录下的myblog/urls.py中的路径,设置为空
from django.conf.urls import url
from . import views
urlpatterns = [
url('', views.index),
]
访问路径:http://localhost:9999/myblog/
发现 http://localhost:9999/myblog/ 这个路径后面加任意字符串都可以访问成功
使用正则表达式约束空字符串,如下
from django.conf.urls import url
from . import views
urlpatterns = [
url('^$', views.index),
]
这样就不会出现访问任意路径都可以显示成功了。