【python – Django自动为现有数据库表创建主键】教程文章相关的互联网学习教程文章

Django框架中处理URLconf中特定的URL的方法

有时你有一个模式来处理在你的URLconf中的一系列URL,但是有时候需要特别处理其中的某个URL。 在这种情况下,要使用将URLconf中把特殊情况放在首位的线性处理方式 。 比方说,你可以考虑通过下面这个URLpattern所描述的方式来向Django的管理站点添加一个目标页面urlpatterns = patterns(,# ...(^([^/]+)/([^/]+)/add/$, views.add_stage),# ... )这将匹配像 /myblog/entries/add/ 和 /auth/groups/add/ 这样的URL 。然而,对于用户...

Python的Django框架中URLconf相关的一些技巧整理

提供视图配置选项 如果你发布一个Django的应用,你的用户可能会希望配置上能有些自由度。 这种情况下,为你认为用户可能希望改变的配置选项添加一些钩子到你的视图中会是一个很好的主意。 你可以用额外URLconf参数实现。 一个应用中比较常见的可供配置代码是模板名字:def my_view(request, template_name):var = do_something()return render_to_response(template_name, {var: var})了解捕捉值和额外参数之间的优先级 额外的选项...

通过数据库向Django模型添加字段的示例

首先借用书本(book)的这个数据模型:from django.db import modelsclass Publisher(models.Model):name = models.CharField(max_length=30)address = models.CharField(max_length=50)city = models.CharField(max_length=60)state_province = models.CharField(max_length=30)country = models.CharField(max_length=50)website = models.URLField()def __unicode__(self):return self.nameclass Author(models.Model):first_name...

在Django中创建URLconf相关的通用视图的方法

抽取出我们代码中共性的东西是一个很好的编程习惯。 比如,像以下的两个Python函数:def say_hello(person_name):print Hello, %s % person_namedef say_goodbye(person_name):print Goodbye, %s % person_name我们可以把问候语提取出来变成一个参数:def greet(person_name, greeting):print %s, %s % (greeting, person_name)通过使用额外的URLconf参数,你可以把同样的思想应用到Django的视图中。 了解这个以后,你可以开始创作...

Python的Django框架中自定义模版标签的示例

为了自定义一个模板标签,你需要告诉Django当遇到你的标签时怎样进行这个过程。 当Django编译一个模板时,它将原始模板分成一个个 节点 。每个节点都是 django.template.Node 的一个实例,并且具备 render() 方法。 于是,一个已编译的模板就是 节点 对象的一个列表。 例如,看看这个模板:Hello, {{ person.name }}.{% ifequal name.birthday today %}Happy birthday! {% else %}Be sure to come back on your birthdayfor a sple...

简单解析Django框架中的表单验证

我们的搜索示例仍然相当地简单,特别从数据验证方面来讲;我们仅仅只验证搜索关键值是否为空。 然后许多HTML表单包含着比检测值是否为空更为复杂的验证。 我们都有在网站上见过类似以下的错误提示信息:请输入一个有效的email地址, foo 并不是一个有效的e-mail地址。 请输入5位数的U.S 邮政编码, 123并非是一个有效的邮政编码。 请输入YYYY-MM-DD格式的日期。 请输入8位数以上并至少包含一个数字的密码。关于JavaScript...

在Django框架中伪造捕捉到的URLconf值的方法

比如说你有匹配某个模式的一堆视图,以及一个并不匹配这个模式但视图逻辑是一样的URL。 这种情况下,你可以通过向同一个视图传递额外URLconf参数来伪造URL值的捕捉。 例如,你可能有一个显示某一个特定日子的某些数据的应用,URL类似这样的:/mydata/jan/01/ /mydata/jan/02/ /mydata/jan/03/ # ... /mydata/dec/30/ /mydata/dec/31/这太简单了,你可以在一个URLconf中捕捉这些值,像这样(使用命名组的方法):urlpatterns = patt...

在Django的form中使用CSS进行设计的方法【图】

修改form的显示的最快捷的方式是使用CSS。 尤其是错误列表,可以增强视觉效果。自动生成的错误列表精确的使用`` ``,这样,我们就可以针对它们使用CSS。 下面的CSS让错误更加醒目了:ul.errorlist {margin: 0;padding: 0;}.errorlist li {background-color: red;color: white;display: block;font-size: 10px;margin: 0 0 3px;padding: 4px 5px;} 虽然,自动生成HTML是很方便的,但是在某些时候,你会想覆盖默认的显示。 {{form.as...

Django中传递参数到URLconf的视图函数中的方法

有时你会发现你写的视图函数是十分类似的,只有一点点的不同。 比如说,你有两个视图,它们的内容是一致的,除了它们所用的模板不太一样:# urls.pyfrom django.conf.urls.defaults import * from mysite import viewsurlpatterns = patterns(,(r^foo/$, views.foo_view),(r^bar/$, views.bar_view), )# views.pyfrom django.shortcuts import render_to_response from mysite.models import MyModeldef foo_view(request):m_list ...

在Django的URLconf中使用命名组的方法

在我们想要捕获的URL部分上加上小括号,Django 会将捕获的文本作为位置参数传递给视图函数。 在更高级的用法中,还可以使用 命名 正则表达式组来捕获URL,并且将其作为关键字参数传给视图。 一个 Python 函数可以使用关键字参数或位置参数来调用,在某些情况下,可以同时进行使用。 在关键字参数调用中,你要指定参数的名字和传入的值。 在位置参数调用中,你只需传入参数,不需要明确指明哪个参数与哪个值对应,它们的对应关系隐含...

详解Django中Request对象的相关用法【图】

从Request对象中获取数据 我们在第三章讲述View的函数时已经介绍过HttpRequest对象了,但当时并没有讲太多。 让我们回忆下:每个view函数的第一个参数是一个HttpRequest对象,就像下面这个hello()函数:from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world")HttpRequest对象,比如上面代码里的request变量,会有一些有趣的、你必须让自己熟悉的属性和方法,以便知道能拿它们来做些什么。 在v...

在主机商的共享服务器上部署Django站点的方法

许多共享主机的服务提供商不允许运行你自己的服务进程,也不允许修改 httpd.conf 文件。 尽管如此,仍然有可能通过Web服务器产生的子进程来运行Django。 记录 如果你要使用服务器的子进程,你没有必要自己去启动FastCGI服务器。 Apache会自动产生一些子进程,产生的数量按照需求和配置会有所不同。 在你的Web根目录下,将下面的内容增加到 .htaccess 文件中:AddHandler fastcgi-script .fcgi RewriteEngine On RewriteCond %{REQU...

Django中URLconf和include()的协同工作方法

捕获的参数如何和include()协同工作 一个被包含的URLconf接收任何来自parent URLconfs的被捕获的参数,比如:# root urls.pyfrom django.conf.urls.defaults import *urlpatterns = patterns(,(r^(?P\w+)/blog/, include(foo.urls.blog)), )# foo/urls/blog.pyfrom django.conf.urls.defaults import *urlpatterns = patterns(,(r^$, foo.views.blog_index),(r^archive/$, foo.views.blog_archive), )在这个例子中,被捕获的 userna...

在Django的视图(View)外使用Session的方法

从内部来看,每个session都只是一个普通的Django model(在 django.contrib.sessions.models 中定义)。每个session都由一个随机的32字节哈希串来标识,并存储于cookie中。 因为它是一个标准的模型,所以你可以使用Django数据库API来存取session。>>> from django.contrib.sessions.models import Session >>> s = Session.objects.get(pk=2b1189a188b44ad18c35e113ac6ceead) >>> s.expire_date datetime.datetime(2005, 8, 20, 13,...

在Django的模型中执行原始SQL查询的方法

有时候你会发现Django数据库API带给你的也只有这么多,那你可以为你的数据库写一些自定义SQL查询。 你可以通过导入django.db.connection对像来轻松实现,它代表当前数据库连接。 要使用它,需要通过connection.cursor()得到一个游标对像。 然后,使用cursor.execute(sql, [params])来执行SQL语句,使用cursor.fetchone()或者cursor.fetchall()来返回记录集。 例如:>>> from django.db import connection >>> cursor = connection.c...