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 函数时不必特别在意参数的顺序.当然有些开发人员认为命名分组的语法很丑并且繁琐
分享到:
相关推荐
- 配置URL路由:在Django的urls.py文件中设置相应的路由规则,指向后台模板的视图函数。 - 创建视图:编写视图函数,处理请求并返回模板渲染后的结果。 - 模板文件:将Django_layui提供的模板文件复制到项目的...
这些模板文件会与Django后端的视图函数和URL配置协同工作,当用户请求某个页面时,Django会根据URL解析到相应的视图,由视图生成数据,然后将这些数据填充到对应的模板中,最终生成HTML响应返回给用户。通过这种方式...
1. **变量**:在模板中,我们可以使用双大括号`{{ }}`来表示变量。例如,`{{ user.username }}`将显示用户的用户名。这个变量来自于视图函数传递给模板的数据字典。 2. **控制结构**:Django模板支持条件语句(如`{...
- `urls.py`:负责定义项目的URL配置。 - `views.py`:包含了处理请求的视图函数。 - `templates/`:存储HTML模板文件。 ##### 2.2 执行顺序 当我们启动Django服务端时(通过命令`python manage.py runserver`),...
Django内置了一个后台数据管理系统,经简单配置后,再编写少量代码即可使用完整的后台管理功能。 强大的缓存支持。Django内置了一个缓存框架,并提供了多种可选的缓存方式。 丰富的模板语言。Django模板语言功能丰富...
在IT行业中,构建Web应用程序时,开发者经常会选择合适的框架来提高效率和代码质量...在实践中,开发者应熟练掌握Django的模型、视图和URL配置,以及Flask的路由、模板和请求处理,这样才能更好地理解和运用这个项目。
5. **URL路由(URL Conventions)**:URL配置是Django中至关重要的部分,它将URL模式映射到相应的视图函数。Django 4.0的URL配置更加强大和灵活,支持命名URL、正则表达式匹配等特性。 6. **表单(Forms)**:...
URL模式通常使用正则表达式来实现,但Django也提供了更高级的语法,如命名空间和包括其他URL配置,以提高代码的组织性和复用性。 例如,一个简单的URL配置可能如下所示: ```python from django.urls import path ...
开发者可以通过修改urls.py中的URL配置,将URL路径与视图函数关联起来,然后通过定义的视图函数来处理不同的数据库表。例如,可以定义一个通用的add视图函数来处理新增资源的请求,然后通过URL参数区分是新增Node、...
**Python-基于Django的企业级开发模板** 在Python Web开发领域,Django是一个非常流行的开源框架,它...同时,这个模板也展示了如何将各种Python库和Django特性有效地结合在一起,为开发者提供了一个优秀的学习资源。
为了生成验证码,我们需要创建一个视图(view)来处理请求,一个模板(template)来展示验证码,以及可能的URL配置来将它们关联起来。 1. **创建验证码模型**:验证码通常由一组随机数字或字母组成,可以使用Python...
3. 视图层(View Layer):解释了URL配置、视图函数、快捷函数、装饰器、文件上传处理,以及基于类的视图和内建视图。还涉及到了如何使用Mixin来扩展视图功能。 4. 模板层(Template Layer):包括模板的基础知识,...
在Django中,URL的反向生成是通过URLconf(URL配置)来实现的。开发者需要在项目的urls.py文件中定义URL模式和对应的视图函数。当需要在模板或视图函数中生成URL时,可以使用Django提供的方法进行反向生成。 Django...
#### 八、高级视图和URL配置(第八章) - **类视图**:介绍Django中的类视图概念,以及如何使用类视图来简化视图函数的编写。 - **URL命名空间**:讲解如何使用命名空间来组织复杂的URL配置,避免命名冲突。 #### ...
总结来说,`django-inline-svg`是Django开发中的一个实用工具,简化了SVG在模板中的使用,提高了开发效率和网页性能。通过学习和掌握这个库,开发者可以在项目中更好地利用SVG的优势,创建更加美观且高效的Web应用。
3. **app**:Django项目的应用目录,每个应用都有自己的模型(models.py)、视图(views.py)、模板(templates)和URL配置(urls.py)。 4. **settings.py**:项目设置文件,包括数据库配置、中间件、安装的应用等...
接下来,可以开始编写Django应用程序,创建模型、视图、URL和模板,实现Web应用的功能。在实际开发中,还会涉及数据库配置、权限管理、表单处理、部署等更深入的知识。 文档“django第一阶段总结文档.doc”可能包含...
4. Django模板系统:系统性介绍了Django模板的基础使用方法,包括模板继承、模板标签和过滤器的运用,以及如何在视图中使用模板。 5. Django模型的高级用法:详细阐述了如何在Django中定义和操作模型,包括数据库...
**第八章 高级视图和URL配置** 在这一章,你将学习到如何创建更复杂的视图,包括类视图和函数视图,以及如何使用装饰器来扩展视图的功能。此外,URL配置的高级技巧也将被讲解,包括命名URL、URL参数以及如何组织URL...