【Django】 MTV 的简单流程

实现一个请求

  • 首先要在 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 目录下注册路由的访问了

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值