对Django Web开发中路由(ulr)配置 '^static/(?P<path>.*)' 的理解

本文介绍了Django Web开发中关于静态文件路由的配置,重点解析了'^static/(?P<path>.*)'的含义。在DEBUG=True时,Django会自动处理静态文件。通过在urls.py中添加特定代码,可以启用静态文件服务。文中讨论了正则表达式中的命名正则表达式组,并通过两个方法说明如何将路径参数传递给视图函数进行处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   在Django静态文件管理中,开发过程中需要启用静态文件服务,在settings.py文件的INSTALLED_APPS中,启用静态文件管理模块‘django.contrib.staticfiles’,DEBUG设置为True时,在Pycharm下运行runserver将自动启用静态文件服务。(读者可自行调试,注释掉django.contrib.staticfiles,可查看报错详情),此模式不适合线上环境使用,具体详情查看Django文档http://www.2xkt.com/documents/django_182/howto/static-files/index.html

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'login.apps.LoginConfig',
]

    除此之外,如果STATIC_URL 定义为/static/,可以通过在urls.py 中加入以下代码片段启用:

from django.conf.urls import url, include
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^ckeditor/', include('ckeditor_uploader.urls')),
    url(r'^home/', include('login.urls')),
]
urlpatterns+=static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

在调试模式下启动项目,可以看到相关的路由信息如下图所示:

重点关注圈红的部分:(?P<path>.*)

       在Python正则表达式中,命名正则表达式组的语法是(?P <name> pattern),其中name是组的名称,pattern是一些要匹配的模式。

下面举例加以说明:

方法1:指明组名称

(r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive'),  ---> d{n} 匹配数字n次

如果通过路由/articles/2005/03/ 向Django后台发送请求,则会调用视图函数news.views.month_archive(request, year='2005', month='03')

将实参传输到相关视图函数后进行下一步逻辑处理。

方法2:未指明组名称

(r'^articles/(\d{4})/(\d{2})/$', 'news.views.month_archive'),
如果通过路由 /articles/2005/03/  向Django后台发送请求,则会调用视图函数news.views.month_archive(request, '2005', '03')

将实参传输到相关视图函数后进行下一步逻辑处理。

                                                                                                      

                                                                                              django学习者小白一枚,第一次写博客,不好之处还请见谅!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值