【linux基础 --python 和 Django 的安装运行】教程文章相关的互联网学习教程文章

通过数据库对Django进行删除字段和删除模型的操作

删除字段 从Model中删除一个字段要比添加容易得多。 删除字段,仅仅只要以下几个步骤:删除字段,然后重新启动你的web服务器。 用以下命令从数据库中删除字段:ALTER TABLE books_book DROP COLUMN num_pages;请保证操作的顺序正确。 如果你先从数据库中删除字段,Django将会立即抛出异常。 删除多对多关联字段 由于多对多关联字段不同于普通字段,所以删除操作是不同的。从你的模型中删除ManyToManyField,然后重启web服务器。...

详解在Python的Django框架中创建模板库的方法

不管是写自定义标签还是过滤器,第一件要做的事是创建模板库(Django能够导入的基本结构)。 创建一个模板库分两步走:第一,决定模板库应该放在哪个Django应用下。 如果你通过 manage.py startapp 创建了一个应用,你可以把它放在那里,或者你可以为模板库单独创建一个应用。 我们更推荐使用后者,因为你的filter可能在后来的工程中有用。无论你采用何种方式,请确保把你的应用添加到 INSTALLED_APPS 中。 我们稍后会解释这一点。...

编写自定义的Django模板加载器的简单示例

Djangos 内置的模板加载器(在先前的模板加载内幕章节有叙述)通常会满足你的所有的模板加载需求,但是如果你有特殊的加载需求的话,编写自己的模板加载器也会相当简单。 比如:你可以从数据库中,或者利用Python的绑定直接从Subversion库中,更或者从一个ZIP文档中加载模板。 模板加载器,也就是 TEMPLATE_LOADERS 中的每一项,都要能被下面这个接口调用:load_template_source(template_name, template_dirs=None)参数 template_...

详解Django框架中用context来解析模板的方法

你需要一段context来解析模板。 一般情况下,这是一个 django.template.Context 的实例,不过在Django中还可以用一个特殊的子类, django.template.RequestContext ,这个用起来稍微有些不同。 RequestContext 默认地在模板context中加入了一些变量,如 HttpRequest 对象或当前登录用户的相关信息。 当你不想在一系例模板中都明确指定一些相同的变量时,你应该使用 RequestContext 。 例如,考虑这两个视图:from django.template ...

详解Django中的form库的使用

Django带有一个form库,称为django.forms,这个库可以处理我们本章所提到的包括HTML表单显示以及验证。 接下来我们来深入了解一下form库,并使用她来重写contact表单应用。 Django的newforms库 在Django社区上会经常看到django.newforms这个词语。当人们讨论django.newforms,其实就是我们本章里面介绍的django.forms。 改名其实有历史原因的。 当Django一次向公众发行时,它有一个复杂难懂的表单系统:django.forms。后来它被完全...

在Django的视图中使用form对象的方法

在学习了关于Form类的基本知识后,你会看到我们如何把它用到视图中,取代contact()代码中不整齐的部分。 一下示例说明了我们如何用forms框架重写contact():# views.pyfrom django.shortcuts import render_to_response from mysite.contact.forms import ContactFormdef contact(request):if request.method == POST:form = ContactForm(request.POST)if form.is_valid():cd = form.cleaned_datasend_mail(cd[subject],cd[message...

在Python的Django框架中包装视图函数

我们最终的视图技巧利用了一个高级python技术。 假设你发现自己在各个不同视图里重复了大量代码,就像 这个例子:def my_view1(request):if not request.user.is_authenticated():return HttpResponseRedirect(/accounts/login/)# ...return render_to_response(template1.html)def my_view2(request):if not request.user.is_authenticated():return HttpResponseRedirect(/accounts/login/)# ...return render_to_response(templ...

在Django的模板中使用认证数据的方法

当前登入的用户以及他(她)的权限可以通过 RequestContext 在模板的context中使用。 注意 从技术上来说,只有当你使用了 RequestContext这些变量才可用。 并且TEMPLATE_CONTEXT_PROCESSORS 设置包含了 “django.core.context_processors.auth” (默认情况就是如此)时,这些变量才能在模板context中使用。 TEMPLATE_CONTEXT_PROCESSORS 设置包含了 "django.core.context_processors.auth" (默认情况就是如此)时,这些变量才能在...

在Django中同时使用多个配置文件的方法

我们仅仅处理一个单一的设置文件 settings.py文件由django-admin.py startproject命令生成。但是当你准备要进行配置的时候,你将发现你需要多个配置文件以使你的开发环境和产品环境相独立。 比如,你可能不想每次在本地机器上测试代码改变的时候将DEBUG从False 改为True。Django通过使用多个配置文件而使得这种情况很容易得到避免。 如果你想把你的配置文件按照产品设置和开发设置组织起来,你可以通过下面三种方法的其中一种达到这...

通过mod_python配置运行在Apache上的Django框架

为了配置基于 mod_python 的 Django,首先要安装有可用的 mod_python 模块的 Apache。 这通常意味着应该有一个 LoadModule 指令在 Apache 配置文件中。 它看起来就像是这样:LoadModule python_module /usr/lib/apache2/modules/mod_python.soThen, edit your Apache configuration file and add a directive that ties a specific URL path to a specific Django installation. 例如:<Location "/">SetHandler python-programPy...

在Django中限制已登录用户的访问的方法

有很多原因需要控制用户访问站点的某部分。 一个简单原始的限制方法是检查 request.user.is_authenticated() ,然后重定向到登陆页面:from django.http import HttpResponseRedirectdef my_view(request):if not request.user.is_authenticated():return HttpResponseRedirect(/accounts/login/?next=%s % request.path)# ...或者显示一个出错信息:def my_view(request):if not request.user.is_authenticated():return render_to...

在Django中使用Sitemap的方法讲解

sitemap 是你服务器上的一个XML文件,它告诉搜索引擎你的页面的更新频率和某些页面相对于其它页面的重要性。 这个信息会帮助搜索引擎索引你的网站。 例如,这是 Django 网站(http://www.djangoproject.com/sitemap.xml)sitemap的一部分:<?xml version="1.0" encoding="UTF-8"?> http://www.djangoproject.com/documentation/weekly0.5http://www.djangoproject.com/documentation/0_90/never0.1... 需要了解更多有关 sitemaps 的信...

使用FastCGI部署Python的Django应用的教程

作为一个mod_python模块的替代,你可以考虑使用mod_wsgi模块,此模块开发的时间比mod_python的开发时间离现在更近一些,在Django社区已有一些使用。 一个完整的概述超出了本书的范围,你可以从官方的Django文档查看到更多的信息。 使用FastCGI部署Django应用 尽管将使用Apache和mod_python搭建Django环境是最具鲁棒性的,但在很多虚拟主机平台上,往往只能使用FastCGI 此外,在很多情况下,FastCGI能够提供比mod_python更为优越的安...

详解Django通用视图中的函数包装

用函数包装来处理复杂的数据过滤 另一个常见的需求是按URL里的关键字来过滤数据对象。 之前,我们在URLconf中硬编码了出版商的名字,但是如果我们想用一个视图就显示某个任意指定的出版商的所有书籍,那该怎么办呢? 我们可以通过对 object_list 通用视图进行包装来避免 写一大堆的手工代码。 按惯例,我们先从写URL配置开始:urlpatterns = patterns(,(r^publishers/$, list_detail.object_list, publisher_info),**(r^books/(\w+...

在Python的Django框架中显示对象子集的方法

现在让我们来仔细看看这个 queryset 。 大多数通用视图有一个queryset参数,这个参数告诉视图要显示对象的集合。 举一个简单的例子,我们打算对书籍列表按出版日期排序,最近的排在最前:book_info = {queryset: Book.objects.order_by(-publication_date), }urlpatterns = patterns(,(r^publishers/$, list_detail.object_list, publisher_info),**(r^books/$, list_detail.object_list, book_info),** )这是一个相当简单的例子,...