- 浏览: 63741 次
- 性别:
- 来自: 广东省惠州市
最新评论
-
wl6179:
很不一样的视角,谢谢yzjklove的解说!
Python学习笔记(实用技巧) -
wl6179:
貌似不错哦,如能上传一张效果图就完美了~
在Django中实现验证码 -
wl6179:
谢谢,受教了!
[Django学习]事务处理 -
fire01312:
这个不错!
如何根据已有数据自动产生Model
文章列表
[Python Tips]去除 Trivial 赋值语句
写 python 这么久,其实有许多小技巧记在了脑子里,当然,其中也烂掉了不少。今天正好有同事问关于怎么去除 trivial 赋值语句问题,觉得应当以此为契机,养成把这些小技巧记录下来发表到博客上的习惯,一来不会久了之后技巧烂在了脑子里,二来也许能对别人有所裨益呢?
trivial 赋值语句的问题在于许多 python 程序员有着丰厚的 C/C++ 背景,习惯在 __init__() 函数里“声明”成员变量,写 python 的时候积习难改,如:
>>> class Foo(object):
... def ...
1. Mix-in技术介绍
Mixin可以译为混入,就是在不改变原对象的情况下对其进行扩展。本文介绍了在 Python 语言中,如何实现Mixin技术,及安装的相应技巧。
1.1. 什么是Mix-in技术
Mix-in技术,中文不知道应该如何称呼,但意思好象是混入。它的作用是,在运行期间,动态改变类的基类或类的方法,从而使得类的表现可以发生变化。可以用在一个通用类接口中,根据不同的选择使用不同的低层类实现,而高层类不用发生变化。而且这一实现可以在运行过程中动态进行改变。由于我也是刚看到,大家有问题可以与我进行交流。这就是我看到的文章的链接。
1.2. 基类的增加
有一个类,
cl ...
Pythonic到底是什么玩意儿?
作者:Martijn Faassen
译者:赖勇浩(http://blog.csdn.net/lanphaday)
原文地址:http://faassen.n--tree.net/blog/view/weblog/2005/08/06/0
注:Martijn 是 Zope 领域的专家,他为 Zope 系列产品做了许多开发工作,也开发了 lxml 等多个开源产品。你可以在这里了解一下他的信息http://www.zope.org/Members/faassen。这篇文章写于 2005 年,虽然有少部分内容(主要是例子)看起来已经有些过时,但即便是在今天,它 ...
1. 编程 FAQ
Date: $Date: 2005-06-05 19:37:51 -0500 (Sun, 05 Jun 2005) $ Version: $Revision: 8226 $ Web site:
http://www.python.org/
1.1. 一般问题
1.1.1. 是否有源码级的调试器, 具有breakpoint, single-stepping等功能?
是的。
pdb模块是一个简单却强大的命令行模式的python调试器。它是标准python库的一部分, 在库参考手册中有关于它的文档。作为一个例 子,你也可以使用p ...
MySQLdb默认查询结果都是返回tuple,输出时候不是很方便,必须按照0,1这样读取,无意中在网上找到简单的修改方法,就是传递一个cursors.DictCursor就行。
默认程序:
import MySQLdb
db = MySQLdb.connect(host = 'localhost', user = 'root', passwd = '123456', db = 'test')
cursor = db.cursor()
cursor.execute('select * from user')
rs = cursor.fetchall()
print rs
# 返回类似如下
# ( ...
PS:The B-List是个很牛的Django博客,大量的技巧和教程,英语好的一定要去订阅,怕看英语的,就等我的翻译吧。
经常被问到的一个问题是:我怎么样为我的app提供初始化数据?或者一个相似的问题:我怎么样保证我的程序在通过syncdb安装的同时运行某些代码。Django提供了多种途径实现这个功能,你可以根据具体的需求选择不同的实现方式。虽然这些功能在文档里都已经说明了,但是还是会遇到很多问题,所以我们今天仔细看看各种不同的方式之间的区别,了解哪一种更适合你。
提供SQL语句初始化数据
这是最古老的方式(从Django一开始就有这个功能)也是最简单的方式(不管是你需要做的部分,还是它 ...
一、库文件导入问题
1. from django.conf.urls.defaults import *
from website.contact.views import contact, thanks
#这种方法导入不好,因为随着views数量的增多,在每次加入
#新的view函数时还得确认是否已经导入了这个函数。
#如果项目非常大 则 ...
Django也用了一段时间了,写了两三个小网站,但是始终感觉自己写出来的站点目录和功能的安排还是比较混乱,很难达到让自己满意的效果,更不要说令人赏心悦目了。尤其是,当你需要开发下一个网站的时候,虽然感觉用户部 ...
一、如何实现系统的灵活扩展
在实际的应用中,经常要考虑系统的扩展性。当一个系统定型并被打包发布后(甚至被转成了exe文件包后),想要在不破坏整体性的同时,又能方便的扩展(或调整)系统的功能,就像插件、补丁这些功能。
1. 使用类别名+外部文件来扩展内部类
原理:在代码编写过程中,注意使用类别名。即在类的定义完成后,给类赋一个标准别名,然后在类的实现时使用这个标准别名来操作。在扩展时,执行一个外部文件,这个文件中对原类做了扩展,并将标准别名赋给这个扩展类,就可以实现功能扩展了。
举个例子:
代码一:test.py
------------------------------ ...
1.os模块
os模块包装了不同操作系统的通用接口,使用户在不同操作系统下,可以使用相同的函数接口,返回相同结构的结果。
os.name:返回当前操作系统名称('posix', 'nt', 'os2', 'mac', 'ce' or 'riscos')
os中定义了一组文件、路径在不同操作系统中的表现形式参数,如
os.sep(文件夹分隔符,windows中是 \ )
os.extsep(扩展名分隔符,windows中是 . )
os.pathsep(目录分隔符,windows中是 ; )
os.linesep(换行分隔符,windows中是 \r\n ...
大多数Django教程都是将models放在models.py文件(模块)中, 然而随着models类的增加, 将类放在一个文件中太混乱了, 于是将models做成一个package:
models/
__init__.py
usermodels.py
othermodel.py
这样就可以将models定义拆分到多个模块中, 但是当用命令同步数据时发现不可用:
manage.py sqlall blog
不会生成数据库创建命令(APP的名字是blog)
需要做如下更改:
在__init__.py中import模块:
from usermodels impor ...
使用JSON代替XML做为数据传输是个不错的选择,下面我们看看django中如何使用json。
首先下载json-py的类库,http://blog.ntsky.com/wp-content/uploads/json-py-3_4.zip
我们使用关联select作为例子:
<select name="city_id" id="city_id" onChange="getFacilityOptions(this.value)">
{% if city_list %}
{% for city in c ...
执行数据库删除,使用了django的cursor.execute(sql)进行删除数据,发现了奇怪问题,有时候可以执行成功,有的时候执行不成功。
通过SQL的监控看到SQL语句是正常的,就是没有执行commit
代码应该是没问题的:
from django.db import connection
cursor = connection.cursor()
cursor.execute("delete from event where id=%s",[event_id])
cursor.close()
想不通问题出在什么地方,有的地 ...
django 框架, 模板在templates中 ,样式和图片在site_media,
如
templates/index.html
文件内容:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<met ...
今天在Google Talk上碰到mryanyi,他最近在将一老系统转换到Django中,他和我说了Django有legacy db的功能.
我还没听说过,就在django的文档中搜索了一下,发现django可以根据已有数据库来生成Model类.
使用方法非常简单:
在项目目录下的命令行中输入:
python manage.py inspectdb
或
python manage.py inspectdb > models.py