`

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 函数时不必特别在意参数的顺序.当然有些开发人员认为命名分组的语法很丑并且繁琐

 

分享到:
评论

相关推荐

    django4中文文档

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

    Python.Django视频教程.zip

    django-05-URL配置.rar Django-06-模板基本使用.rar Django-07-数据库使用-01.rar Django-08-数据库使用-02.rar Django-09-数据库使用_03.rar Django-10-数据库使用_04.rar Django-11-数据库使用_05.rar Django-12-...

    python课程设计基于Django的购物商城系统源码+数据库.zip文件

    基于Django的购物商城系统是一个使用Python语言和Django框架开发的在线商城平台。以下是该系统的主要功能和实现...编写视图函数和URL映射:编写处理请求的视图函数,并在URL配置中进行映射。 编写模板文件:创建HTML模

    在django模板中实现超链接配置

    django中的超链接,在template中可以用{% url ‘app_name:url_name’ param%} 其中app_name在工程urls中配置的namespace取值,url_name是在tweb/urls.py中配置的name对应 启用的param参数为可选项,当函数存在的...

    Python Django框架url反向解析实现动态生成对应的url链接示例

    url反向解析应用在两个地方:模板中的超链接,视图中的重定向。 项目名/urls.py(项目的url路由配置,url反向解析,取namespace名字): from django.conf.urls import include, url from django.contrib import ...

    The Django Book(第一版 中文高清版)

    第八章 高级视图和URL配置 第九章 通用视图 第十章 解读模板处理引擎 第十一章 输出非HTML的内容 第十二章 会话、用户和注册 第十三章 缓存机制 第十四章 集成的子框架 第十五章 中间件 第十六章 集成已有...

    django从入门到深入WEB教程

    第八章 高级视图和URL配置 第九章 通用视图 第十章 解读模板处理引擎 第十一章 输出非HTML的内容 第十二章 会话、用户和注册 第十三章 缓存机制 第十四章 集成的子框架 第十五章 中间件 完成度 第十六章 集成已有...

    Python Django建站教程源代码《玩转Django2.0》配套全部源码 共13个章节 含目录内容.rar

    第2章 Django配置信息 18 2.1 基本配置信息 18 2.2 静态资源 20 2.3 模板路径 23 2.4 数据库配置 25 2.5 中间件 28 2.6 本章小结 29 第3章 编写URL规则 32 3.1 URL编写规则 32 3.2 带变量的URL 34 3.3 设置参数name...

    django开发

    settings.py: Django配置文件(模块应用配置,数据库配置,模板配置) urls.py: Django项目的URL声明 wsgi.py : 与WSGI兼容的WEB服务器为你的项目提供服务的入口点 manage.py: 一个命令行工具,可以让你在使用Django...

    Python毕业设计-基于django的毕业设计管理系统(源码+数据库).zip

    编写URL路由:配置URL路由,将URL映射到相应的视图函数或类。 编写表单:根据需求,编写表单类来处理用户输入和数据验证。 实现用户认证:使用Django内置的认证系统或第三方库来实现用户注册、登录和权限管理。 ...

    django-manifest-loader:使用Django简化Webpack配置

    读取清单文件,以将您的资产导入到Django模板中。 通过使用与文件名匹配的模式,找到单个资产的URL或多个资产的URL。 使用Django的内置staticfiles应用程序处理路径解析。 最小的配置,缓存清除,拆分块。 关于 ...

    django-docs-2.2-zh-hans.zip

    基础: URL配置 | 视图函数 | 便捷工具 | 装饰器 参考: 内置视图 | Request/response 对象 | TemplateResponse 对象 文件上传: 概览 | 文件对象 | 存储 API | 管理文件 | 自定义存储 基于类的视图: 概览 | 内置...

    Python基于Django框架图书管理系统(源码+数据库+前端+文档)

    3. 创建视图和模板:编写视图函数,处理URL请求,并返回相应的网页模板。创建HTML模板文件,用于展示页面内容。 4. 设计路由:定义URL路由规则,将不同的URL请求映射到相应的视图函数。 5. 实现图书的增删查改功能...

    Django框架视图层URL映射与反向解析实例分析

    URL分发(URL dispatcher)映射配置可以被看作Django项目的入口配置(项目下的urls.py以及应用的下的urls.py,include将两者联系起来在项目下的urls.py),通过URLdispatcher可以指定用户的每一个访问的后台的python...

    django-materialize-template:Django中使用Materialize和Bower的项目的入门模板

    Django中使用Materialize和Bower的项目的入门模板。 要求: 画中画 凉亭 Yuglify 依赖于: Requirements \ base,dev,prod或test.txt bower.json 跑步 虚拟环境 venv \ bin \ activate#在Linux上 点安装-r ...

    django-gizmo:Django应用程序允许模板包含标签的可配置目标

    以以下形式创建您的gizmos配置(在本例中为gizmos.py )文件: gizmos = ( ('&lt;loader&gt;', '&lt;tag&gt;', '&lt;slot&gt;', [['&lt;url&gt;, ]]),)和: 是你通常会传递给Django的负载标签,即名称myapp_inclusion_tags为{% load mya

    heroku-django-template:用于 Heroku 部署的 Django 1.7 模板

    通过 django-postgrespool 和 dj-database-url 增强 Django 的数据库功能 开发和生产环境的单独设置和需求文件 为本地开发环境安装的开发调试工具栏 添加了一些更基本的入门 heroku 附加组件,用于性能跟踪、缓存和...

    django-flags:Django项目的功能标志

    功能标志允许您根据可配置的条件在Django代码和Django模板中切换功能。 标志对于登台功能部署,A / B测试或在您需要对代码块使用开/关开关的任何时间都非常有用。 可以按日期,用户,URL值或许多进行切换,可在管理...

    python教程之django入门

    django的安装与介绍、网站的创建、模板变量、模板语法、过滤器了解、URL配置、sqlite3了解、数据库交互、admin使用、django框架总结

Global site tag (gtag.js) - Google Analytics