`

Django中的URL配置和模板

阅读更多

Django中的URL配置 :

 

实例:

 

urlpatterns = patterns('',
    # Example:
    # (r'^myweb/', include('myweb.foo.urls')),

    # Uncomment the admin/doc line below and add 'django.contrib.admindocs' 
    # to INSTALLED_APPS to enable admin documentation:
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),

    # Uncomment the next line to enable the admin:
    (r'^admin/', include(admin.site.urls)),
    (r'^$',"view.index"),
    (r'^hello/$',"view.hello"),
    (r'^time/(\d+)/$',"view.time"),
    (r'^time1/(?P<id>(\d+))/$',direct_to_template,{"template":"time1.html"}),
    (r'^time2/$',direct_to_template,{'template':'time2.html'}),
     
)

 

(r'^$',"view.index"),
首页,直接访问地址,交给view.index这个方法处理,比如 :http://localhost/

(r'^hello/$',"view.hello"),
访问比如http://localhost/hello的地址交给view.hello方法处理

 

(r'^time/(\d+)/$',"view.time"),

访问http://localhost/time/1/,http://localhost/time/2/这样的地址,后面(\d+)用于匹配的数字,非数字是必能匹配的,并且后面的(\d+)的值会作为参数,所以方法应该这样写

 

def time(request,offset)  request为请求对象会自动传递进来,offset即为URL中(\d+)匹配的值,比如http://localhost/time/2/,offset 的值就是2

 

   (r'^time1/(?P<id>(\d+))/$',direct_to_template,{"template":"time1.html"}),

direct_to_template:为转发模板到 time1.html

(?P<id>(\d+)) 表示匹配后给这个参数加上一个别名,在页面中使用{{params.id}}可以访问到URL中id的值

 

另外在加载模板的时候需要配置:

1、settings.py 中的

 

TEMPLATE_DIRS = (
    # Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
    # Always use forward slashes, even on Windows.
    # Don't forget to use absolute paths, not relative paths.
    os.path.join(os.path.dirname(__file__), 'templates/').replace('\\','/'),
)

 表示将网站目录下 templates/的模板路径

 

2、在urls.py中导入direct_to_template方法 from django.views.generic.simple import direct_to_template

 

 

 

如何启用Django的admin,我用的是1.1.1版本:

 

1、 在setting.py中启用admin和auth

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.admin',

)

2、在urls.py中启用以下代码:

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

url配置 (r'^admin/', include(admin.site.urls)), 启用

 

就能打开admin,比如http://localhost/admin/

 

 

 

命名匹配: 

 

在 Python 正则表达式里, 命名分组的语法是 (?P<name>pattern), 这里 name 是分组的名字而 pattern 是要匹配的模式.

下面用命名分组重写上面的例子:

urlpatterns = patterns('',
    (r'^articles/2003/$', 'news.views.special_case_2003'),
    (r'^articles/(?P<year>\d{4})/$', 'news.views.year_archive'),
    (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/$', 'news.views.month_archive'),
    (r'^articles/(?P<year>\d{4})/(?P<month>\d{2})/(?P<day>\d+)/$', 'news.views.article_detail'),
)

上面的代码与前面的代码功能完全相同, 不过传递给 view 函数的不再是位置相关参数,而变成了关键字参数.比如:

 

方法定义:

def month_archive(request,year)

def month_archive(request,year,month)

def article_detail(request,year,month,day)

  • 页面请求 /articles/2005/03/ 会自动调用函数 news.views.month_archive(request, year='2005', month='03'), 而不是 news.views.month_archive(request, '2005', '03').
  • 页面请求 /articles/2003/03/3/ 会自动调用函数 news.views.article_detail(request, year='2003', month='03', day='3').

实际上, 这意味着 URLconfs 更清晰,而且避免了参数顺序错误引发的 bug -- 定义 view 函数时不必特别在意参数的顺序.当然有些开发人员认为命名分组的语法很丑并且繁琐

 

分享到:
评论

相关推荐

    Django_layui后台模板

    - 配置URL路由:在Django的urls.py文件中设置相应的路由规则,指向后台模板的视图函数。 - 创建视图:编写视图函数,处理请求并返回模板渲染后的结果。 - 模板文件:将Django_layui提供的模板文件复制到项目的...

    django博客项目前端模板.rar

    这些模板文件会与Django后端的视图函数和URL配置协同工作,当用户请求某个页面时,Django会根据URL解析到相应的视图,由视图生成数据,然后将这些数据填充到对应的模板中,最终生成HTML响应返回给用户。通过这种方式...

    python-django模板

    1. **变量**:在模板中,我们可以使用双大括号`{{ }}`来表示变量。例如,`{{ user.username }}`将显示用户的用户名。这个变量来自于视图函数传递给模板的数据字典。 2. **控制结构**:Django模板支持条件语句(如`{...

    django中url映射规则和服务端响应顺序的实现

    - `urls.py`:负责定义项目的URL配置。 - `views.py`:包含了处理请求的视图函数。 - `templates/`:存储HTML模板文件。 ##### 2.2 执行顺序 当我们启动Django服务端时(通过命令`python manage.py runserver`),...

    django4中文文档

    Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。 强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。 丰富的模板语言。Django模板语言功能丰富...

    Python-一个Django模板用于使用Flask作为前端Django作为后端

    在IT行业中,构建Web应用程序时,开发者经常会选择合适的框架来提高效率和代码质量...在实践中,开发者应熟练掌握Django的模型、视图和URL配置,以及Flask的路由、模板和请求处理,这样才能更好地理解和运用这个项目。

    django4.0官方中文文档

    5. **URL路由(URL Conventions)**:URL配置是Django中至关重要的部分,它将URL模式映射到相应的视图函数。Django 4.0的URL配置更加强大和灵活,支持命名URL、正则表达式匹配等特性。 6. **表单(Forms)**:...

    Python库 | django-url-framework-0.3.3.tar.gz

    URL模式通常使用正则表达式来实现,但Django也提供了更高级的语法,如命名空间和包括其他URL配置,以提高代码的组织性和复用性。 例如,一个简单的URL配置可能如下所示: ```python from django.urls import path ...

    Django中URL的参数传递的实现

    开发者可以通过修改urls.py中的URL配置,将URL路径与视图函数关联起来,然后通过定义的视图函数来处理不同的数据库表。例如,可以定义一个通用的add视图函数来处理新增资源的请求,然后通过URL参数区分是新增Node、...

    Python-基于django的企业级开发模板

    **Python-基于Django的企业级开发模板** 在Python Web开发领域,Django是一个非常流行的开源框架,它...同时,这个模板也展示了如何将各种Python库和Django特性有效地结合在一起,为开发者提供了一个优秀的学习资源。

    django生成验证吗的模板

    为了生成验证码,我们需要创建一个视图(view)来处理请求,一个模板(template)来展示验证码,以及可能的URL配置来将它们关联起来。 1. **创建验证码模型**:验证码通常由一组随机数字或字母组成,可以使用Python...

    Django 中文文档

    3. 视图层(View Layer):解释了URL配置、视图函数、快捷函数、装饰器、文件上传处理,以及基于类的视图和内建视图。还涉及到了如何使用Mixin来扩展视图功能。 4. 模板层(Template Layer):包括模板的基础知识,...

    Django 反向生成url实例详解

    在Django中,URL的反向生成是通过URLconf(URL配置)来实现的。开发者需要在项目的urls.py文件中定义URL模式和对应的视图函数。当需要在模板或视图函数中生成URL时,可以使用Django提供的方法进行反向生成。 Django...

    django中文开发手册

    #### 八、高级视图和URL配置(第八章) - **类视图**:介绍Django中的类视图概念,以及如何使用类视图来简化视图函数的编写。 - **URL命名空间**:讲解如何使用命名空间来组织复杂的URL配置,避免命名冲突。 #### ...

    Python-djangoinlinesvg一个Django的简单SVG模板标签

    总结来说,`django-inline-svg`是Django开发中的一个实用工具,简化了SVG在模板中的使用,提高了开发效率和网页性能。通过学习和掌握这个库,开发者可以在项目中更好地利用SVG的优势,创建更加美观且高效的Web应用。

    基于Python+Django的博客系统,使用django框架,template模板,后台管理xadmin。.zip

    3. **app**:Django项目的应用目录,每个应用都有自己的模型(models.py)、视图(views.py)、模板(templates)和URL配置(urls.py)。 4. **settings.py**:项目设置文件,包括数据库配置、中间件、安装的应用等...

    python-django安装配置

    接下来,可以开始编写Django应用程序,创建模型、视图、URL和模板,实现Web应用的功能。在实际开发中,还会涉及数据库配置、权限管理、表单处理、部署等更深入的知识。 文档“django第一阶段总结文档.doc”可能包含...

    Django中文版 教程.

    4. Django模板系统:系统性介绍了Django模板的基础使用方法,包括模板继承、模板标签和过滤器的运用,以及如何在视图中使用模板。 5. Django模型的高级用法:详细阐述了如何在Django中定义和操作模型,包括数据库...

    django中文教程 word版

    **第八章 高级视图和URL配置** 在这一章,你将学习到如何创建更复杂的视图,包括类视图和函数视图,以及如何使用装饰器来扩展视图的功能。此外,URL配置的高级技巧也将被讲解,包括命名URL、URL参数以及如何组织URL...

Global site tag (gtag.js) - Google Analytics