b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

djangobook?django中文文档?django 发包?Django Book 学习笔记(上)(2)

电脑杂谈  发布时间:2016-06-09 18:05:07  来源:网络整理

如果你熟悉其它的 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开发的最佳实践。

八.输出非html内容

视图与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

也许你已经注意到了,cookies的工作方式可能导致的问题。 让我们看一下其中一些比较重要的问题:

  • cookie的存储是自愿的,一个客户端不一定要去接受或存储cookie。 事实上,所有的浏览器都让用户自己控制 是否接受cookies。 如果你想知道cookies对于Web应用有多重要,你可以试着打开这个浏览器的 选项:
  • 尽管cookies广为使用,但仍被认为是不可靠的的。 这意味着,开发者使用cookies之前必须 检查用户是否可以接收cookie。
  • Cookie(特别是那些没通过HTTPS传输的)是非常不安全的。 因为HTTP数据是以明文发送的,所以 特别容易受到嗅探攻击。 也就是说,嗅探攻击者可以在网络中拦截并读取cookies,因此你要 绝对避免在cookies中存储敏感信息。 这就意味着您不应该使用cookie来在存储任何敏感信息。
  • 还有一种被称为”中间人”的攻击更阴险,攻击者拦截一个cookie并将其用于另一个用户。 第19章将深入讨论这种攻击的本质以及如何避免。
  • 即使从预想中的接收者返回的cookie也是不安全的。 在大多数浏览器中您可以非常容易地修改cookies中的信息。有经验的用户甚至可以通过像mechanize() 这样的工具手工构造一个HTTP请求。
  • 因此不能在cookies中存储可能会被篡改的敏感数据。 在cookies中存储 IsLoggedIn=1 ,以标识用户已经登录。 犯这类错误的站点数量多的令人难以置信; 绕过这些网站的安全系统也是易如反掌。
  • 以上就是关于djangobook的全部内容,相信你一定会非常满意。


    本文来自电脑杂谈,转载请注明本文网址:
    http://www.pc-fly.com/a/shenmilingyu/article-8390-2.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      每日福利
      热点图片
      拼命载入中...