Django路由简单使用

Django路由简单使用

项目创建完成之后,框架会自动创建一个根路由,就是urls.py文件,这个路由是整个项目根路由,而为了方便管理应用中自身的路由,我们可以在应用中创建路由文件来管理应用的路由.然后合并到项目中使用即可在这里插入图片描述
应用中的路由文件,我们要这么写
# App/urls.py

from django.urls import path
from App import views
#  应用中的路由界面,注意urlpatterns不能修改,因为需要跟项目中的根路由保持名称的一致才能正常添加
urlpatterns = [
    #  第一个参数是访问的路径,不能以/开头,第二个返回的视图函数,第三个是名称,通过名称访问路由也是可以的
    path('home/',views.home,name='home')
]

写好路由文件之后,我们需要写这个路由返回的视图函数,在views.py文件中来写
# App/views.py
from django.shortcuts import render
# 导入Django的HttpResponse函数
from django.http import HttpResponse

# Create your views here.

# 该函数名称,与路由中视图函数名称相同,注意第request参数必须写
def home(request):
	# 当访问到home这个路由时,返回对应的内容
    return HttpResponse('This is home page')
上面的代码写好之后,还是访问不到home这个路由,因为还没有添加到项目的根路由中,需要把应用中的路由添加到项目的根路由文件中

from django.contrib import admin
# 引入需要的模块
from django.urls import path, include

urlpatterns = [
    path('admin/', admin.site.urls),
    # 这个位置将应用中的子路由添加到项目的根路由当中,注意第一个参数是空字符,就是直接端口号后面跟路径即可访问到子路由界面,如
    #127.0.0.1:8888/home/
    path('',include('App.urls'))
    
    # 如果不是空,就是将路径加上
    #127.0.0.1:8888/index/home/
    path('index/',include('App.urls'))
]

然后通过IP端口与路径就能访问到我们的视图函数,并且在界面中呈现

在这里插入图片描述

将参数通过url的方式传给视图函数,首先在应用的views.py文件中定义一个视图函数,除了第一个参数是Django框架必须有的之外,再增加一个形参.并且增加到字符中返回
# App/views.py 
from django.shortcuts import render
from django.http import HttpResponse

def home(request):
    return HttpResponse('This is home page')

# 带参数的视图函数
def home_detail(request,detail_id):
    text = 'detail_id is %s' % detail_id
    return HttpResponse(text)
然后跟之前一样,将视图函数添加到路由中,也就是应用下的urls.py文件

from django.urls import path
from App import views
#  应用中的路由界面,注意urlpatterns不能修改,因为需要跟项目中的根路由保持名称的一致才能正常添加
urlpatterns = [
    #  第一个参数是访问的路径,不能以/开头,第二个返回的视图函数,第三个是名称,通过名称访问路由也是可以的
    path('home/',views.home,name='home'),
    # 注意此处的detail_id必须与视图函数中的参数名称相同,否则会报错
    path('home/<detail_id>/',views.home_detail)
]

然后我们再次运行,在url后面加上内容,界面就会返回写好的试图函数,并且将参数拼接的字符串一起返回,33333就是参数,我们改变这个参数,返回界面就会同时改变

在这里插入图片描述

将参数以字符查询的方式传递给视图函数,在views.py文件中添加一个视图函数,并且以request对象get的方法获取参数并返回
from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def home(request):
    return HttpResponse('This is home page')

# 带参数的视图函数
def home_detail(request,detail_id):
    text = 'detail_id is %s' %detail_id
    return HttpResponse(text)

# 通过字符串查询方式的视图函数
def home_str_query(request):
    # 通过request对象来获取url上的字符参数
    id = request.GET.get('id')
    # 或者以request.GET['id'] 这种方式获取也是可以的
    text = '字符串的id是 %s' %id
    return HttpResponse(text)
在添加到urls.py路由文件中的时候,就不需要增加参数名称在路径上.直接添加上去即可

from django.urls import path
from App import views
#  应用中的路由界面,注意urlpatterns不能修改,因为需要跟项目中的根路由保持名称的一致才能正常添加
urlpatterns = [
    #  第一个参数是访问的路径,不能以/开头,第二个返回的视图函数,第三个是名称,通过名称访问路由也是可以的
    path('home/',views.home,name='home'),
    #  路径参数访问
    path('home/<detail_id>/',views.home_detail),
    #  字符查询方式访问
    path('str_query/',views.home_str_query)
]

在通过浏览器访问的时候,在访问路径后面加?参数名=参数 这样访问即可
>/',views.home_detail),
    #  字符查询方式访问
    path('str_query/',views.home_str_query)
]
在通过浏览器访问的时候,在访问路径后面加?参数名=参数 这样访问即可

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值