实现一个请求
- 首先要在
urls.py
文件中注册一条路由信息
urlpatterns = [
path('admin/', admin.site.urls),
# 新注册的路由信息 hello
path('hello/',views.hello),
]
路由信息的第一个参数是一条正则表达式,说明的是服务器(IP / 域名)之后的端口匹配规则;第二个参数是对应端口的回调函数(一般通过views.py
进行处理)在这个案例中,第二条路由信息的回调函数调用的是views.py
中的hello()
(在调用视图函数的时候没有括号)
接下来处理回调函数,打开 App 包中的views.py
文件,创建一个新的回调函数,其中回调函数的默认参数是request
# Create your views here.
def hello(request):
return HttpResponse('双击 666 ')
在回调函数中一定要记得返回一个 response
或者是它的子类
接着我们在浏览器中输入环回测试的 IP 和端口 + 对应的路由信息名称:127.0.0.1:8000/hello/
就可以对通过刚刚新建的路由信息进行访问了
实现访问模板网页
因为 Django 采用的是 MVT 的工作模式,所以在使用:templates
模板功能的时候需要在项目app文件夹下新建一个:templates
目录(这个名称不可以改动)如图:在对应项目的app
目录下新建一个templates
接下来我们在urls.py
文件中添加一条路由信息
urlpatterns = [
path('admin/', admin.site.urls),
path('index/',views.index) # 通过 views.py的index函数进行调用
]
在views.py
文件中添加新的返回函数
# Create your views here.
def index(request):
return render(request,'index.html') # 这里使用的是render函数进行调用的,这个函数的作用是对网页进行渲染,函数的第一个参数是request请求,函数的第二个参数是对应的网页文件index
访问模板网页中的DEBUG 与小技巧
**DEBUG:**在第一次使用Django模板的时候,有几率会出现 Templates Doesn't Exists
找不到模板文件的错误:
**解决方案:**首先检查自己在项目 App 之下的模板文件夹的名称是否是templates
;如果是,进入settings.py
找到TEMPLATES
的设定列表
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR,'templates')], # 手动添加templates目录的路径其中 BASE_DIR 指的是当前项目的路径(这里指的是整个项目)
'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',
],
},
},
]
在 Django 的第三个版本之后一般会使用
访问这个网页(成功!)
**小技巧:**为pycharm添加代码提示的文件模板:
用这个案例为例;pycharm 本身不会对于 templates
文件夹中的文件进行任何代码提示,需要我们做一些设置:
右击templates
文件夹,选择Make Directory as
选项卡 下的 templates folder
选项
就可以在写python代码的时候看到对应的提示了。
在 settings.py 中注册新建的 App;在settings.py
文件夹中找到TEMPLATES
参数列表在OPTIONS
选项中添加
'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',
'djApp', # 直接添加对应的App名称即可完成注册
],
},
启用子路由
当一个Django 项目需要更多的路由信息的时候,一般会启用子路由(防止项目根路由urls.py
存放过多的路由信息)
开启子项目(App):
$ python manage.py startapp Two
命令执行完毕之后会出现新的App文件夹(这里的名字叫:Two)在这个App 文件夹下新建一个:urls.py
文件用来存放子路由:
from django.urls import path, include
from Two import views
urlpatterns = [ # 确定 Two 的 index,写法和主路由一样
path('index/',views.index),
]
接着打开 Two 目录下的 views.py
文件设置对应路径的回调函数
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
def index(request):
return HttpResponse("这是子路由的👈index")
最后我们回到主路由文件,在项目同名目录下的urls.py
文件
from django.contrib import admin
from django.urls import path, include
from App import views
urlpatterns = [
path('admin/', admin.site.urls),
path('index/',views.index),
path('home/',views.home),
path('Two/', include('Two.urls')) # 这一行代码添加子路由,使用的是include方法(需要导入)
]
然后就可以通过浏览器进行对子 app 目录下注册路由的访问了