随笔分类 -  django

摘要:通用视图1. 前言2. 使用通用视图安全问题的题外话3. 用于显示对象内容的通用视图4. 通用视图的几种扩展用法4.1 自定义结果集的模板名4.2 增加额外的context4.3 查看结果集的子集4.4 更灵活的结果集操作4.5 利用通用视图做额外工作通用视图1. 前言回想一下,在Django中view层起到的作用是相当于controller的角色,在view中实施的动作,一般是取得请求参数,再从model中得到数据,再通过数据创建模板,返回相应响应对象。但在一些比较通用的功能中,比如显示对象列表,显示某对象信息,如果反复写这么多流程的代码,也是一件浪费时间的事,在这里,Django同样给我们 阅读全文
posted @ 2012-09-23 10:46 btchenguang 阅读(8032) 评论(0) 推荐(2) 编辑
摘要:Model进阶用法回顾访问外键访问多对多关系更改数据库结构当处理数据库结构改变时,需要注意到几点:增加字段首先在开发环境中:再到产品环境中:删除字段删除多对多字段删除modelManager管理器给管理器添加新的方法修改返回的QuerySetModel的方法执行自定义SQL语句Model进阶用法回顾Django中的model层主要和数据库进行交互,使用数据库API对数据库进行增删改查的操作。下面将介绍关于model层更深入的用法。下面是之前创建model的代码:from django.db import modelsclass Publisher(models.Model):name = mo 阅读全文
posted @ 2012-09-09 11:05 btchenguang 阅读(26899) 评论(2) 推荐(6) 编辑
摘要:Template加载机制扩展你的模板系统创建模板库实现自定义过滤器1. 创建register变量2. 定义过滤器函数3. 注册过滤器函数实现自定义tag了解模板编译过程 创建tag实战1. 定义Node节点类,实现render方法2. 创建Compilation函数3. 注册tag4. 运行复杂的实现自定义tag的其他几种方法1. 在Node类的render函数中设置context2. 实现块作用区域的tag3. 在块作用tag中保留context内容4. 快速创建简单tag的方法5. 创建Inclusion Tag创建自定义模板加载类Template加载机制一般来说,你在你的文件系统中存入模 阅读全文
posted @ 2012-09-05 18:45 btchenguang 阅读(27869) 评论(1) 推荐(9) 编辑
摘要:HTML代码自动转义(auto-escaping)当使用模板生成HTML代码时,如果变量内容是一些影响HTML结果的字符时,那就挺危险的。例如,模板内容如下:Hello {{ name }}当name的值为:<script>alert('hello')</script>渲染后的HTML结果就是:Hello <script>alert('hello')</script>以上的代码运行的结果就是会让浏览器弹出一个javascript的警告窗口。同理,如果name的值为<b>hanks,那么结果中Hello以 阅读全文
posted @ 2012-09-03 16:49 btchenguang 阅读(4273) 评论(2) 推荐(2) 编辑
摘要:也许,你想要自定义和扩展模板引擎,下面会介绍一些关于如何去扩展模板系统的方法,了解一下模板系统的工作原理,同时也会介绍Django模板系统中的auto-escapint功能,这是一种安全机制。复习一下模板语言的用法{# 模板tag的用法 #}{% if done %}<strong>Over</strong>{% else %}<strong>wait</strong>{% endif %}{# 模板变量的用法 #}Now is {{ nowtime }}在views.py中使用模板的时候:1. 通过模板名,获得模板对象2. 创建context对 阅读全文
posted @ 2012-09-01 16:06 btchenguang 阅读(9933) 评论(0) 推荐(2) 编辑
摘要:原贴来源http://wiki.woodpecker.org.cn/moin/ObpLovelyPython/AbtWebModulespython实现web服务器web开发首先要有web服务器才行。比如apache,但是在开发阶段最好有一个简单方便的开发服务器,容易重启进行调试,等开发调试完毕后,再将代码部署到成熟稳定高效的web服务器。# -*- coding: utf-8 -*-from wsgiref import simple_server# 定义一个输出 hello world 和环境变量的简单web应用程序def hello_app(environ, start_response 阅读全文
posted @ 2012-08-31 10:00 btchenguang 阅读(4896) 评论(4) 推荐(1) 编辑
摘要:Admin后台管理模块的使用Django的管理员模块是Django的标准库django.contrib的一部分。这个包还包括其它一些实用的模块:django.contrib.authdjango.contrib.sessionsdjango.contrib.comments激活admin模块的方法是:1. 在INSTALLED_APPS设置文件中,加入'django.contrib.admin'2. 再添加'django.contrib.auth','django.contrib.contenttypes''django.contrib. 阅读全文
posted @ 2012-08-29 17:20 btchenguang 阅读(24309) 评论(0) 推荐(0) 编辑
摘要:模板使用模板基本由两个部分组成,一是HTML代码,二是逻辑控制代码。逻辑控制的实现又基本由三个部分组成:1. 变量的使用{{ person_name }} #使用双大括号来引用变量2. tag的使用{% if ordered_warranty %} #使用大括号和百分号的组成来表示使用Django提供的template tag{% for item in item_list %}<li>{{ item }}</li>{% endfor %}3. filter的使用{{ ship_date|date:"F j, Y" }},ship_date变量传给d 阅读全文
posted @ 2012-08-29 17:18 btchenguang 阅读(10924) 评论(0) 推荐(0) 编辑
摘要:初识Django自称MTV框架。和传统的MVC大同小异。M指数据模型(Model),T指模板(Template),用来描述数据的展现。V指的是视图(View),并且,在Django中可以通过URL分发器对URL和View之间的映射进行配置,而View则URL分发器回调。Django发布在2005年7月,为了纪念法国爵士吉它手Django Reinhardt快速体验首先,官网下载,安装,使用命令python setup.py install验证安装成功与否,可以输入:import django看是否报错使用django命令创建一个工程文件夹目前只能输入:python D:\Python27\Li 阅读全文
posted @ 2012-08-29 17:17 btchenguang 阅读(4943) 评论(13) 推荐(3) 编辑
摘要:第一个django程序1. 创建一个django工程python D:\Python27\Lib\site-packages\django\bin\django-admin.py startproject helloworld目前windows下我只发现用这样的命令可以成功创建project。。。这样就会在当前目录下创建一个helloworld工程文件夹。2. 创建views.py文件在工程文件夹根目录创建views.py文件,其实任意文件名都可以,使用views是为了遵循传统。在里面输入:from django.http import HttpResponse#所有的views函数都需要以r 阅读全文
posted @ 2012-08-29 17:17 btchenguang 阅读(4103) 评论(1) 推荐(0) 编辑
摘要:Views,URLconf的advanced用法之前有介绍了一些views和路径匹配的基础用法,在这里介绍一些关于它们的advanced用法。URLconf技巧因为urls.py也是一个python文件,所以你可以在这个文件中使用python允许的任何语法。先看之前介绍的例子:from django.conf.urls import patterns, include, urlfrom books.views import hello, search_form, search, contact, thanksurlpatterns = patterns('',url(r' 阅读全文
posted @ 2012-08-28 20:34 btchenguang 阅读(9201) 评论(0) 推荐(5) 编辑
摘要:FormsHTML form是交互网页的支柱。下面来学习一下有关使用Django处理用户提交的表单数据,验证等功能。我们将讨论HttpRequest和Form对象。request中包含的信息在views.py中的每一个用于显示页面的函数都需要以request作为第一个函数参数。request包含了一些有用的信息,如:request.path 除去了域名和端口的访问路径,request.get_host 域名+端口信息request.get_full_path() 所有路径,包含传递的参数requets.is_secure() 是否使用https进行链接还有一个特别的属性request.META 阅读全文
posted @ 2012-08-27 15:06 btchenguang 阅读(44143) 评论(3) 推荐(6) 编辑
摘要:Model使用首先安装MySQL的python连接驱动,windows下安装可下下载,对应python-2.7:https://code.google.com/p/soemin/downloads/detail?name=MySQL-python-1.2.3.win32-py2.7.exe&can=2&q=简单的,先展示在view中使用mysql数据库操作from django.shortcuts import render_to_responseimport MySQLdbdef book_list(request): db = MySQLdb.connect(user=&# 阅读全文
posted @ 2012-08-25 14:22 btchenguang 阅读(38329) 评论(5) 推荐(3) 编辑