如果你熟悉其它的 MVC Web开发框架,比方说 Ruby on Rails,你可能会认为 Django 视图是控制器,而 Django 模板是视图。 很不幸,这是对 MVC 不同诠释所引起的错误认识。 在 Django 对 MVC 的诠释中,视图用来描述要展现给用户的数据;不是数据 如何展现 ,而且展现 哪些 数据。 相比之下,Ruby on Rails 及一些同类框架提倡控制器负责决定向用户展现哪些数据,而视图则仅决定 如何 展现数据,而不是展现 哪些 数据。
两种诠释中没有哪个更加正确一些。 重要的是要理解底层概念。
模型的内容有很多,还是自己看一下书吧。
Django有自己的管理的模块,类似与php的phpmyadmin。
GET方法的demo:
def search(request): error = False request.GET: q = request.GET[] if not q: error = True else: books = Book.objects.filter(title__icontains=q) , {: books, : q}) , {: error})
POST方法的demo:
from django.core.mail import send_mail from django.http import HttpResponseRedirect from django.shortcuts import render_to_response def contact(request): errors = [] : , ''): errors.append() , ''): errors.append() ) request.POST[]: errors.append() if not errors: send_mail( request.POST[], request.POST[], request.POST.get(, ), [], ) ) , {: errors})
记得:对于成功的GET请求,我们应使用render_to_response返回;而对于成功的POST请求,我们应用HttpResponseRedirect做重定向,这是web开发的最佳实践。
视图与MIME类型:
视图函数只是一个以Web请求为参数并返回Web响应的Python函数。这个响应可以是一个Web页面的HTML内容,或者一个跳转,或者一个404错误,或者一个XML文档,或者一幅图片,或者映射到任何东西上。
输出png图像:
from django.http import HttpResponse def my_image(request): image_data = open() )
输出CSV文件:
import csv from django.http import HttpResponse # Number of unruly passengers each year 1995 - 2005. In a real application # this would likely come from a database or some other back-end data store. UNRULY_PASSENGERS = [146,184,235,200,226,251,299,273,281,304,203] def unruly_passengers_csv(request): # Create the HttpResponse object with the appropriate CSV header. response = HttpResponse(mimetype=) response[] = writer = csv.writer(response) writer.writerow([, ]) for (year, num) in zip(range(1995, 2006), UNRULY_PASSENGERS): writer.writerow([year, num]) return response
输出pdf文件:
from cStringIO import StringIO from reportlab.pdfgen import canvas from django.http import HttpResponse def hello_pdf(request): response = HttpResponse(mimetype=) response[] = temp = StringIO() p = canvas.Canvas(temp) p.drawString(100,100,) p.showPage() p.save() return response
也许你已经注意到了,cookies的工作方式可能导致的问题。 让我们看一下其中一些比较重要的问题:
以上就是关于djangobook的全部内容,相信你一定会非常满意。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shenmilingyu/article-8390-2.html
比如小国
股市技术上需要一个适度上冲
让它们去赚大钱吧