`
zuroc
  • 浏览: 1307895 次
  • 性别: Icon_minigender_1
  • 来自: 江苏
社区版块
存档分类
最新评论

django 简化 view 函数的编写

阅读更多
1.定义包装函数

from django.shortcuts import render_to_response
from django.template.context import RequestContext

def template_name(func):
  def view(request,template_name,*args,**keys):

      result=func(request,*args,**keys)

      if type(result)!=dict:
          return result

      return render_to_response(
      template_name,
      result,
      context_instance=RequestContext(request, result)
      )

  return view

2.使用

@template_name
def video(request,id):
  return  {
      'video':Video.objects.get(id=id)
  }

3.urls.py传入参数

   (r'^channel/(?P<id>[0-9]+)/page/(?P<page>[0-9]+)',channel_list,
   {'template_name': 'videos/channel.html'},"videos_channel"),
分享到:
评论
7 楼 duka 2008-06-27  
render_to_response 里封装的应该是 Context 而不是 RequestContext,所以应该是不行的。
6 楼 zuroc 2008-06-25  
你的代码是怎么写的?
不过好久没有碰django,也忘得差不多了.
但按道理是可以的,
就是一个嵌套函数.
5 楼 duka 2008-06-25  
zuroc 写道
可以不用写      context_instance=RequestContext(request, result)



我试过,不行的,必须这样写才行:
return render_to_response('xxx.html',{'xx':'xx'},RequestContext(request))

请问 张 教 主,还有啥更好的办法?
4 楼 zuroc 2007-08-24  
如果涉及到用户,每一页几乎都要context_instance=RequestContext(request, result)
或者,你自定义了一个TEMPLATE_CONTEXT_PROCESSORS,用来给模板传一个参数media_root
也需要context_instance

将模板的配置放到url里,我个人倒是更喜欢,原因如下:
1.generic view就是这么干的
2.view我更喜欢写成generic的:)
不过,可以考虑加一个默认值
3 楼 zbird 2007-08-24  
有些代码不管写在哪里都得写。
这样做将模板的配置放到url里,我觉得不是很符合开发习惯。
context_instance=RequestContext(request, result)
这句通常情况下也是不需要加的。
2 楼 zuroc 2007-08-23  
可以不用写      context_instance=RequestContext(request, result)
1 楼 fengzl 2007-08-23  
其实这么简化我感觉没什么意义~
可能看起来更难懂

相关推荐

    PyPI 官网下载 | django-view-shortcuts-1.3.tar.gz

    总的来说,`django-view-shortcuts`库是Django开发中的一个实用工具,它简化了视图的编写,提高了开发效率。如果你正在使用Django进行Web开发,了解并适当地利用这个库,可以显著提升你的工作效率,使代码更加简洁和...

    django编写的博客系统

    Django是一个用Python编写的高级Web框架,它遵循“DRY(Don't Repeat Yourself)”原则,旨在简化Web应用的开发过程。本篇将深入探讨如何使用Django来构建一个功能完备的个人博客系统。 ### 1. Django框架基础 ...

    使用Django编写的社交媒体Web App.zip

    Django是一个高级的、面向对象的Web开发框架,它采用MVT(Model-View-Template)设计模式,为开发者提供了高效且灵活的工具,用于构建复杂的Web应用。 **一、Django框架简介** Django以其“ Batteries Included ”...

    基于Django编写的商城.zip

    Django的URLconf(URL配置)系统允许开发者自定义URL模式,将URL映射到特定的View函数,使得URL设计更加清晰和可维护。 10. 错误处理与测试: Django提供了一套完整的错误处理机制,可以捕获和处理各种运行时错误...

    Django是一个开放源代码的Web应用框架

    Django,作为一款由Python语言编写的开源Web应用框架,为开发者提供了强大的工具和功能,以便构建高效、安全且易于维护的网站。它的核心设计理念是“简洁、实用、优雅”,这使得Django在Web开发领域备受青睐。接下来...

    Practical django Projects 实战Django

    Django是一款开源的Python Web框架,遵循MVC(Model-View-Controller)设计模式,但其更倾向于MTV(Model-Template-View)架构。该框架的主要特点包括: - **快速开发**:Django的设计理念之一就是简化开发过程,让...

    djangoproject.zip

    2. **ORM与数据库**:Django的ORM允许开发者用Python代码操作数据库,无需编写SQL,支持多种数据库,如MySQL、PostgreSQL等,简化了数据库的使用。 3. **URL路由系统**:Django通过URLconf(URL配置)将URL映射到...

    Django框架基础教程(一):简单介绍PythonDjango框架.pdf

    Django是一个用Python语言编写的开源Web应用框架,它遵循Model-View-Controller(MVC)的设计模式。Django因其强大的功能和高效性,在Python Web开发领域占据着重要地位,被广泛应用于众多知名网站和应用程序的构建...

    django基础教程

    Django的数据库迁移工具`manage.py makemigrations`和`manage.py migrate`使得数据库结构的变更变得简单,无需手动编写SQL。 十一、部署与性能优化 Django项目可以部署在各种Web服务器上,如Apache、Nginx等。通过...

    Django学习入门教程.pdf

    - **函数视图(FBV)**:传统的Django视图是使用Python函数编写的,这种视图通常被称为FBV(Function-Based View)。FBV简单且易于理解,适合小型项目或简单的业务逻辑。 - **类视图(CBV)**:类视图提供了一种...

    django 3.0.x源码文件

    开发者可以通过编写自定义中间件来扩展Django的功能。 **7. 表单和验证** `django.forms`模块提供了表单和字段的定义,以及数据验证功能。它简化了用户输入数据的处理和验证过程。 **8. 管理员(Admin)应用** ...

    Django Web正常页面版

    Django 的目标是简化 Web 应用程序的开发过程,同时确保代码的可维护性和可扩展性。Django 框架最初由 Jeff Forcier、Paul Bissex 和 Wesley Chun 等人共同开发,并于 2005 年首次发布。 ### Django 的主要特性 - ...

    Django课件.zip

    Django会自动生成数据库操作的SQL语句,简化了数据库管理。 2. **视图(View)**:视图是应用程序的逻辑层,处理HTTP请求并返回响应。视图函数或视图类接收用户请求,调用模型进行数据操作,然后根据结果渲染模板并...

    中文版django book

    在这一章中,我们将探索更高级的视图类型,如基于类的视图,以及如何利用它们来简化视图函数的编写。此外,还将介绍更复杂的 URL 路由配置策略。 ### 第九章:模版高级进阶 本章将进一步深化对 Django 模板的理解...

    精通Django

    Django是用Python编写的一个开源Web框架,遵循“DRY”(Don't Repeat Yourself)原则,旨在简化Web应用程序的开发过程。它的主要特点是模型-视图-控制器(MVC)架构模式的实现,即Model、View和Template,以及管理...

    2019版-千锋Django-源码+笔记.zip

    Django是基于模型-视图-控制器(MVC)设计模式的开源Web框架,由Python编写。它的核心特性包括快速开发、内置ORM、数据库agnostic性、强大的表单处理以及内置管理界面。Django强调“DRY”(Don't Repeat Yourself)...

    精通 Django中文版

    首先,Django 的核心概念包括模型(Models)、视图(Views)、模板(Templates)和URL 映射(URLconfs),这通常被称为 MVC(Model-View-Controller)架构的变体——MTV(Model-Template-View)。模型负责数据模型的...

    千峰Django.7z

    Django是用Python编写的高级Web开发框架,它遵循模型-模板-视图(MTV)架构模式,旨在简化网站开发过程。 1. **Python Django框架**: Django是一个开源的Web应用框架,它由Python编写,用于快速开发安全且可维护的...

    django 1.6.5

    2. **ORM系统**:Django 提供了强大的对象关系映射(ORM),允许开发者使用 Python 对象来操作数据库,简化了数据库操作。 3. **数据库管理**:Django 的 `syncdb` 命令(在 1.7 版本后被 `migrate` 替代)用于创建...

Global site tag (gtag.js) - Google Analytics