django学习(三):路由分发

本文详细介绍了Django项目中静态文件的配置,包括在项目根目录创建static目录及在settings.py中设置STATIC_URL。同时,讲解了URL路由的配置,如使用正则表达式进行路径匹配,以及视图函数参数的接收。文中还提到了多个应用的路由分发,使用include进行路由的整合,并展示了登录验证中获取请求参数的方法。
摘要由CSDN通过智能技术生成

静态文件显示配置

  1. 在项目根目录下创建static目录

  1. 在settings.py中添加

STATIC_URL = '/static/'
# /static/代表页面去访问的地址
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static')
]
# 这里的static代表它在你项目中的路径
  1. 去访问static下的文件

/static/12.txt

正则匹配

普通的路径匹配

path('index/', views.index),
# 当请求/index/路径,就会被index/给匹配,去执行index这个视图函数
# 如果我想匹配/index/下的任意数字,都想被index函数去执行,就没法办到了

正则匹配

from django.urls import path, re_path
from app01 import views
urlpatterns = [
    re_path('index/\d\d\d/', views.index),
]

使用正则表达式进行路径匹配

我去访问/index/123/

/index/234/

都会被index/\d\d\d/进行成功匹配

从而去执行index函数

正则匹配之无名分组

如果在index函数中,我想接收所匹配的内容,就需要要使用到分组匹配

re_path('index/(\d\d\d\d)/', views.index),

将(\d\d\d\d)匹配的值,传递给index函数,那么index函数就要进行接收

def index(request, year):
    print(year)
    return HttpResponse('index')

由于是无名分组,这里index函数的接收参数,可以随便写

正则匹配之有名分组

re_path('book/(?P<m>\d\d)/', views.book),

将(?P\d\d)匹配的内容以m的关键字传递给book这个函数,那么book这个函数的参数必须是m

def book(request, m):
    print(m)
    return HttpResponse('月份')

多个app的路由分发

使用include进行路由分发.

re_path('^app01/', include('app01.urls')),  # /app01/index/
re_path('^app02/', include('app02.urls')),  # /app02/index

比如我请求/app02/index,先被^app02/匹配上,

把我的请求导向到include(‘app02.urls’))

登录验证

def login(request):
    # 获取get请求参数用这个
    # name = request.GET.get('name')
    # pwd = request.GET.get('pwd')
    # print(name, pwd)

    # 获取post请求参数用这个
    name = request.POST.get('name')
    pwd = request.POST.get('pwd')
    print(name, pwd)
    if name == 'xxx' and pwd == '123':
        return redirect('/app01/index/')
    return render(request, 'login.html')

返回三剑客

render 返回一个页面

return render(request, 'index.html')  # index.html是在templates中的路径

HttpResponse 返回字符串

return HttpResponse("hello world")  # 直接写要返回的字符串

redirect 重定向到一个地址

return rediect('/login/')   # 直接写跳转的路径,
# 如果使用了include,也要补全app的路径
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值