`
APieceOfRedCloth
  • 浏览: 2568 次
  • 性别: Icon_minigender_1
  • 来自: 威海
最近访客 更多访客>>
社区版块
存档分类
最新评论

Django step by step学习笔记

阅读更多

受不了x软的工作了,开始学习Django1.2。记下知识点。

  1. Django1.2版有些不同。对于post请求,工程配置文件settings.py中的MIDDLEWARE_CLASSES 中需要加入中间件'django.middleware.csrf.CsrfResponseMiddleware'
  2. 一般地,django.shortcuts包中提供了封装好的渲染html模板的方法render_to_response:
    from django.shortcuts import render_to_response
    def index(request):
          return render_to_response('list.html',{'addr':address})
     如果需要对response做特殊处理,那么就需要手动渲染模板:
    from django.template import loader, Context
    from django.http import HttpResponse
    
    def csv(request, filename):
        response = HttpResponse(mimetype='text/csv;')
        response['Content-Disposition'] = 'attachment; filename=%s.csv' % filename
        t = loader.get_template('csv.html')
        c = Context({
            'data': address,
        })
        response.write(t.render(c))
        return response 
    
  3. Django的session功能需要数据库支持,因此需要在settings.py中配置好数据库:
    DATABASES = {
        'default': {
            'ENGINE': 'sqlite3', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
            'NAME': './data.db',                      # Or path to database file if using sqlite3.
            'USER': '',                      # Not used with sqlite3.
            'PASSWORD': '',                  # Not used with sqlite3.
            'HOST': '',                      # Set to empty string for localhost. Not used with sqlite3.
            'PORT': '',                      # Set to empty string for default. Not used with sqlite3.
        }
    }
     然后运行manage.py syncdb创建数据库。
  4. urls.py文件控制地址分发。Django的配置文件本身就是.py类型的python文件,完全按照python的语法书写。url使用正则表达式描述,有需要的话可以从url中提取参数。比如:
    urlpatterns = patterns('',
        (r'^csv/(\w+)/$', 'list.csv'),
    )
     这样,比如地址是"/csv/filename/",那么"filename"就会被提取出来作为list.csv方法的第二个参数(第一个参数是request)。但是这样书写,参数是按出现的位置依次提取的。如果想指定参数名,可以这样:
    urlpatterns = patterns('',
        (r'^csv/(?P<filename>\w+)/$', 'list.csv'),
    )
     这样,list.csv中就可以使用命名参数filename。
  5. 工程目录下的urls.py可以将请求转发给应用目录下的urls.py进行处理:
    urlpatterns = patterns('',
       (r'^address/', include('address.urls')),    #地址只匹配开头,所以不以"$"结尾。地址剩下的部分交由address下的urls.py继续匹配
    )
    
     
  6. 超级用户可以在第一次运行"manage.py syncdb"时创建,也可以在之后运行manage.py createsuperuser命令。
  7. models.py中的model默认不被admin模块管理,这里要注册一下要被管理的模块。在应用目录下创建“admin.py”文件:
    from django.contrib import admin
    from tdp.address.models import Address
    
    admin.site.register(Address)    #注册Address,这样才可以用admin模块管理
  8. "manage.py reset APP_NAME"可以将应用"APP_NAME"下model中的变化同步到数据库中,但是会清除已有数据。
  9. 使用Generic views模块可以省略掉view。
    from django.conf.urls.defaults import *
    from tdp.address.models import Address
    
    info_dict = {
    #    'model': Address,
        'queryset': Address.objects.all(),
    }
    urlpatterns = patterns('',
        (r'^/?$', 'django.views.generic.list_detail.object_list', info_dict),
    )
    
     使用object_list,默认查找的模板是“app_label/model_name_list.html”。即应用目录下,名称是model名+"_list.html"的文件。
  10. 自定义模板过滤器。在应用目录下创建过滤器文件 templatetags/ change_gender.py。装载过滤器时需要用到这个文件名“{% load change_gender %}”。change_gender.py内容参考:
    #coding=utf-8
    from django import template
    
    register = template.Library()
    
    #@register.filter(name='change_gender')
    def change_gender(value):
        if value == 'M':
            return '男'
        else:
            return '女'
    
    register.filter('decode_gender', change_gender)
     新版本python可以使用注解方式。使用过滤器时,名称是decode_gender。
分享到:
评论

相关推荐

    django step by step

    《Django Step by Step》教程概述 Django是一款基于Python的免费开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式。本教程“Django Step by Step”旨在帮助初学者逐步掌握Django的核心概念和实践技能,通过...

    Django_Step_by_Step

    根据提供的文件内容,文档似乎是关于一个名为《Django Step by Step》的教程,它以实践为基础,对初学者学习Django这一Python Web框架的入门提供了帮助。为了便于理解,下面我将详细介绍Django的基础知识点以及如何...

    Django step by step 1.0.2版.doc

    【Django step by step 1.0.2版】教程是一个逐步学习Django框架的指导文档,主要针对初学者,旨在帮助他们理解并构建一个简单的"Hello, World!"程序。Django是一个用Python编写的高级Web框架,它遵循MVC(Model-View...

    django笔记 django笔记

    本笔记将深入探讨Django的基础概念、核心功能以及实际应用。 1. **Django简介**: Django是由两位美国开发者在2005年创建的开源项目,它遵循MVC(模型-视图-控制器)设计模式,但更倾向于MTV(模型-模板-视图)...

    django框架学习笔记(源代码及文档)

    django框架学习笔记(源代码及文档) :“django框架学习笔记” :“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的...

    Django框架学习笔记

    ### Django框架学习笔记 #### 软件框架概述 软件框架是软件开发中的一种结构化设计,它提供了一种组织代码、数据和其他资源的方式,使得开发者可以更容易地构建应用程序。框架通常包含了一些预设的解决方案,这些...

    Django学习笔记

    个人总结的Django学习笔记, 持续更新中。 目前只是总结了django的一部分学习逻辑。

    Django学习笔记.pdf

    Django是一个高级的Python Web框架,它鼓励快速开发和干净...如果读者在阅读和学习过程中遇到问题,可以依据Django官方文档进行参考,或向IT社区和论坛寻求帮助。在实践中不断尝试和解决实际问题是提高技能的有效途径。

    Django step and step 1.02实践(源码加笔记)

    **Django step by step 1.02 实践详解** Django是一个强大的开源Web框架,由Python编写,用于快速开发安全且易于维护的网站。在1.02版本中,Django提供了一系列改进和增强的功能,使其成为初学者和经验丰富的开发者...

    django学习笔记

    **Django学习笔记** Django,作为Python领域最流行的Web框架之一,因其高效、安全且易于上手的特点,被广大开发者所青睐。本学习笔记旨在深入解析Django的核心概念、功能以及实际应用,帮助读者从零开始掌握这个...

    Django学习笔记.zip

    这个名为"Django学习笔记.zip"的压缩包文件显然包含了关于Django框架深入学习的各种资料,涵盖了从基础到进阶的主题。让我们逐一探讨这些主题。 1. **Django安装**:Django的安装通常通过Python的包管理器pip完成。...

    django框架学习笔记

    【标题】:“django框架学习笔记” 【描述】:“django学习” 在Python的世界里,Django是一个强大且受欢迎的Web框架,它遵循模型-视图-控制器(MVC)设计模式,用于快速开发高效且可维护的网站。Django强调代码...

    django_step_by_step.rar

    这个“django_step_by_step”压缩包文件提供了一个逐步学习Django的基础教程,帮助初学者理解并掌握这个框架的核心概念和技术。 一、Django简介 Django是一个免费且开源的Web开发框架,遵循模型-模板-视图(Model-...

    千峰django笔记.md

    学习django框架的笔记,超详细

Global site tag (gtag.js) - Google Analytics