Django urls配置方式

例子以上一篇随笔中的blog应用进行.

urls.py默认生成的格式如下:

 1 """whsweb URL Configuration
 2
 3 The `urlpatterns` list routes URLs to views. For more information please see:
 4     https://docs.djangoproject.com/en/1.8/topics/http/urls/
 5 Examples:
 6 Function views
 7     1. Add an import:  from my_app import views
 8     2. Add a URL to urlpatterns:  url(r‘^$‘, views.home, name=‘home‘)
 9 Class-based views
10     1. Add an import:  from other_app.views import Home
11     2. Add a URL to urlpatterns:  url(r‘^$‘, Home.as_view(), name=‘home‘)
12 Including another URLconf
13     1. Add an import:  from blog import urls as blog_urls
14     2. Add a URL to urlpatterns:  url(r‘^blog/‘, include(blog_urls))
15 """
16 from django.conf.urls import include, url
17 from django.contrib import admin
18
19 urlpatterns = [
20     url(r‘^admin/‘, include(admin.site.urls)),
21 ]

第一种方式:应用.视图.方法

url(r‘^blog/index/$‘,‘blog.views.archive‘)

这个就表示访问url匹配r‘^blog/index/$‘正则表达式的情况下,网页呈现blog应用下views视图中的archive方法

第二用方式:调用对象

头部导入对象:

from blog.views import archive

url(r‘^blog/index/$‘,archive)

第三种方式:构建patterns赋值

头部记得导入

from django.conf.urls import include, url,patterns使用patterns方法赋值给urlpatterns对象
urlpatterns =patterns(‘blog.views‘
  url(r‘^blog/index/$‘,‘archive‘)
)

第四种方式:包含其他url

url(r‘^blog/‘, include(‘blog.urls‘)),直接包含blog下的urls配置。

url方法:

def url(regex, view, kwargs=None, name=None, prefix=‘‘):
    if isinstance(view, (list, tuple)):
        # For include(...) processing.
        urlconf_module, app_name, namespace = view
        return RegexURLResolver(regex, urlconf_module, kwargs, app_name=app_name, namespace=namespace)
    else:
        if isinstance(view, six.string_types):
            warnings.warn(
                ‘Support for string view arguments to url() is deprecated and ‘
                ‘will be removed in Django 2.0 (got %s). Pass the callable ‘
                ‘instead.‘ % view,
                RemovedInDjango20Warning, stacklevel=2
            )
            if not view:
                raise ImproperlyConfigured(‘Empty URL pattern view name not permitted (for pattern %r)‘ % regex)
            if prefix:
                view = prefix + ‘.‘ + view
        return RegexURLPattern(regex, view, kwargs, name)

可以看到url参数可以采用三种方式配置:1、list 2、tuple 3、string

include方法返回的是tuple

时间: 2024-10-06 15:32:02

Django urls配置方式的相关文章

django setting配置方式及解说

# encoding=utf-8 import os import socket SITE_ID = 1 # 项目的根目录 # 简化后面的操作 PROJECT_ROOT = os.path.dirname(os.path.dirname(__file__)) # 加载应用 # 把应用添加到INSTALLED_APPS中 from apps.kuser.mysetting import myapp as kuser_app from apps.blog.mysetting import myapp

Django urls配置

浏览器向web服务器请求url地址时,urls.py文件中的patterns方法进行响应,响应的方法是通过url方法进行匹配的,匹配的过程中需要传入4个参数,4个参数的作用如下: url(路径,视图,其它,name) 路径:使用regex的方式进行路径字符串匹配的 视图:是通过app下的views中的函数定义的 其它:可以传递任意参数到目标view name:可以将此处的参数传递给特殊的templates中(templates后面再将,它是Django特有的编程模式--MVT,MVT编程模型中需

Django 缓存配置的多种方式

django 的缓存配置有多种方式,主要包含以下几种: 1.开发调试模式 2.内存模式 3.使用文件 4.直接使用数据库 5.使用redis或者memcache 这里主要是记录一下那些不常用,但是在微型项目或者测试阶段可以使用的配置方式(主要是记录一下 BACKEND, 引擎) 内存模式 CACHES = { 'default': { 'BACKEND': 'django.core.cache.backends.locmem.LocMemCache', 'LOCATION': 'lowmanis

Django及其配置(Mysql)

MVC和MTV模式 著名的MVC模式:所谓MVC就是把web应用分为模型(M),控制器(C),视图(V):他们之间以一种插件似的,松耦合的方式连接在一起. 模型负责业务对象和数据库的对象(ORM),视图负责与用户交互(页面),控制器(C)接收用户的输入调用模型和视图完成用户的请求. Django的MTV模式本质上与MVC模式没什么差别,也是各组件之间为了保持松耦合的关系,只是定义上有些许不同,Django的MTV分别代表: Mode(模型):负责业务对象与数据库的对象(ORM) Template

Django路由配置

Django路由配置系统.视图函数 1.路由配置系统(URLconf) URL配置(URLconf)就像Django 所支撑网站的目录.它的本质是URL与要为该URL调用的视图函数之间的映射表:你就是以这种方式告诉Django,对于这个URL调用这段代码,对于那个URL调用那段代码. urlpatterns = [ url(正则表达式, views视图函数,参数,别名), ] 参数说明: 一个正则表达式字符串 一个可调用对象,通常为一个视图函数或一个指定视图函数路径的字符串 可选的要传递给视图函

django admin配置以及使用

django  admin配置以及使用 知识预览 admin组件使用 admin源码解析 admin组件使用 Django 提供了基于 web 的管理工具(django 2.0+, python3.6+). Django 自动管理工具是 django.contrib 的一部分.你可以在项目的 settings.py 中的 INSTALLED_APPS 看到它: # Application definition# 新建一个应用名为mysite,注册application INSTALLED_APP

模型配置方式实现爬虫

爬虫框架: DotnetSpider] [三] 模型配置方式实现爬虫 上一篇介绍了最基础的使用方法,也是最自由最灵活的方式,但是其实大多数情况下是可以用模型配置的方式实现一个爬虫的.我们做框架,肯定要尽可能的把一些重复性的工作帮你们做掉,当然灵活性等也会打折扣,但肯定有存在的意义. 另,爬虫已经对dotnet core rc2 做了适配,可以在dotnet core rc2环境下运行啦 定义数据对象类 [Schema("test", "sku", TableSuff

win环境下,django+postgresql配置

先下载postgresql的python包,选择合适自己的python版本和平台32位还是64位,http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 下载win环境下postgresql接口,http://www.stickpeople.com/projects/python/win-psycopg/ 设置django settings.py DATABASES项 注:第2步如果不操作就会出现from psycopg2._psycopg import

MySQL Replication的主从同步的常用2种配置方式

因为实际的业务需求最近就需要部署一些mysql服务器,而在部署mysql服务器中在做主从同步时用的都是MySQL Replication的主从同步的方法,当然实现mysql主从同步的方法还有很多,这里就只说使用MySQL Replication的主从同步的功能,在实现mysql的主从同步的常用的2种配置方式,当然可以根据实际的生产环境选择不同的方式,在这里就简单的把2种配置方法配置my.cnf说一下,因为以前有写过mysql的主从同步方法,这里就不再赘述了,需要可以参看:http://jim12