七日Python之路--第九天

众所周知,代码这东西不是看出来的。程序这东西只哟一个标准。

下面找点开源的东西看看,学习一下大婶们的犀利编码......

推荐一下:

虽然有点老了:http://www.iteye.com/topic/405150,还有就是GitHub上面搜索一下Django就能出来很多,当然还有OSChina。只是有个问题,就是Django版本不同,具体的内容可能会有些不同,但大概还是相同的。领略即可,然后书写自己的代码。

首要的还是官方文档。



看着还是有些难度的。偶然发现一个不错的Blog:http://www.dannysite.com/ 使用Django搭建

源码:https://github.com/manyunkai/dannysite.com

OK,本来就有意要创建一个Blog的,现在连例子也都有了....之前使用Java建过一个Blog,只是功能很少,现在有机会了。这周的任务就是继续学习Django 然后 再把 Blog 搭建起来.......吼吼!

--2014年07月29日19:14:04


(一)csrf

The CSRF middleware and template tag provides easy-to-use protection againstCross Site Request Forgeries.  This type of attack occurs when a malicious Web site contains a link, a form button or some javascript that is intended to perform some action on your Web site, using the credentials of a logged-in user who visits the malicious site in their browser.  A related type of attack, ‘login CSRF’, where an attacking site tricks a user’s browser into logging into a site with someone else’s credentials, is also covered.

  1. Add the middleware‘django.middleware.csrf.CsrfViewMiddleware‘ to your list of middleware classes, MIDDLEWARE_CLASSES.  (It should come before any view middleware that assume that CSRF attacks have been dealt with.)

    Alternatively, you can use the decoratorcsrf_protect() on particular views you want to protect (see below).

  2. In any template that uses a POST form, use the csrf_token tag inside the <form> element if the form is for an internal URL, e.g.:
    <form action="." method="post">{% csrf_token %}

    This should not be done for POST forms that target external URLs, since that would cause the CSRF token to be leaked, leading to a vulnerability.

  3. In the corresponding view functions, ensure that the‘django.core.context_processors.csrf‘ context processor is being used. Usually, this can be done in one of two ways:
    1. Use RequestContext, which always uses‘django.core.context_processors.csrf‘ (no matter what your TEMPLATE_CONTEXT_PROCESSORS setting).  If you are using generic views or contrib apps, you are covered already, since these apps use RequestContext throughout.
    2. Manually import and use the processor to generate the CSRF token and add it to the template context. e.g.:
      from django.core.context_processors import csrffrom django.shortcuts import render_to_responsedef my_view(request):
          c = {}
          c.update(csrf(request))
          # ... view code here
          return render_to_response("a_template.html", c)

      You may want to write your ownrender_to_response() wrapper that takes care of this step for you.

      The utility script extras/csrf_migration_helper.py (located in the Django distribution, but not installed) can help to automate the finding of code and templates that may need these steps. It contains full help on how to use it.

    至于AJAX,以后再说吧。下面将开始Django及Blog的编写。

    -- 2014年07月29日21:02:21

七日Python之路--第九天,布布扣,bubuko.com

时间: 2024-10-03 11:46:48

七日Python之路--第九天的相关文章

七日Python之路--第九天(blog与Django)

在做models之前,最好将https://docs.djangoproject.com/en/1.6/  中的the model layer 细读. (一)琐碎 (1)*args和**kwargs.的使用 在Django中经常见到含有这两个参数的函数.*args可代表任意个参数:func(arg, *args)代表这个函数可以有一个或更多个参数.可以理解成一个参数list.**kwargs可以代表任意个K=V形式的参数.大体就是这样. (2)不经意间,被MySQL的编码折磨.Ubuntu下修改

七日Python之路--第十二天(Django Web 开发指南)

<Django Web 开发指南>.貌似使用Django1.0版本,基本内容差不多,细读无妨.地址:http://www.jb51.net/books/76079.html (一)第一部分 入门 (1)内置数字工厂函数 int(12.34)会创建一个新的值为12的整数对象,而float(12)则会返回12.0. (2)其他序列操作符 连接(+),复制(*),以及检查是否是成员(in, not in) '**'.join('**')   或  '***%s***%d' % (str, int)

七日Python之路--第五天(之找点乐子)

(一)一些闲言碎语 刚才在搜索的时候,看到别人说的一句话,大体意思如下:自从学习Python之后,就不想在学习其他语言了,只想抓紧时间写些有用的东西.细想一下,果真如此. 唉,Python魅力如此之大.感觉比Java容易的多,也可能是小众语言,因为足够小才显得足够强大.算了,不愿多想,还是多写些有意思的东西吧,哈哈. (二)一些有趣的代码 (1)一句话文件服务器 [email protected]:~$ python -m SimpleHTTPServer Serving HTTP on 0.0

七日Python之路--第一天

网上的资源师丰富的.但难免有些过时的信息,比如我现在使用的是去年下载的python3.3,而网上多数都是Python2.7. 差别比较大的就是:①读取用户输入raw_input()已经不能使用,只能使用input().②文件读取file()也不能使用了,被替换成了open(). 入门教材算是看的<简明Python教程>:地址 http://sebug.net/paper/python/index.html 一共16个章节,大约两个小时看完.这样算是入门了吧. 由于之前研究Java方向是WEB方

七日Python之路--第十三天(最后一天)

好久没更新博客了.前几天一个初级博客基本成型,然后想着怎么放到sae上,这事着实给难住了.最后算是基本完成,Django1.6需要自己上传.然后就换成了Django1.5,然后配置好数据库并将数据SQL语句插入进去即可. 博客地址: tiny234.sinaapp.com . 接下来再继续修改下细节部分.再将代码放到github上. 剩下的,开始研究Spider了..... --2014年08月18日20:57:23 梦醒人不见,泪眼映孤灯.   --临江仙   <铁磁铜牙纪晓岚> 七日Pyt

七日Python之路--第三天

之前由于看基础看的觉着没意思,才去提前看一下Django的.现在突然不知到该干啥了. 不管什么语言,官方文档是必须的.so........... 莫名浮躁,实在看不下去........   待会研究 re 吧.虽然之前研究过,但许久不使用,忘的差不多了....Orz. --2014.7.23 18:37 正则表达式: 1.掌握正则表达式的规则 正则表达式是一种小型,高度专业化的编程语言,内嵌Python中,通过re模块实现. 正则表达式模式被编译成一系列字节码,由用C编写的匹配引擎执行. 字符匹

七日Python之路--第十一天

(一)关于模板,Template 可以在项目根目录下的settings.py 配置文件中,声明 import os BASE_DIR = os.path.dirname(os.path.dirname(__file__)) TEMPLATE_DIRS = os.path.join(BASE_DIR, 'templates') 这样模板的默认搜索就是在根目录的'templates'文件下进行寻找. 但是,感觉还是不声明,直接使用默认的搜索路径比较好.当不进行声明时,默认搜索路径是相应的app应用目

七日Python之路--无关Python(混人乱语,不看也罢)

2014年08月06日的下午,内心压制不住的狂躁抑或浮躁.莫名的感到很多无形的压力,以至于感觉自己似乎快要死去. 怎么说呢,前些日子情人节.自己鼓足勇气去见了自己内心喜欢的女生,当然她也是知道的.我们大二还是大三认识的,差不多有两年多了吧.大学不在一个学校,还有一个原因就是她那时有男朋友,但跟男朋友的时分时合.自己由于种种原因,跟她联系也不是太多.后来毕业,自己考研失败,当然这其中全是自己的问题,既然自己做出了选择便没有什么谈论后悔的资格.后来知道她考上了研究生.而我则在青岛找了一家小公司做起了

七日Python之路--第三天(之不安分 wxPython)

Python有好多个GUI框架,wxPython比较流行,so just do it.....   Win下各种不爽,又换Ubuntu 跟着教程做个记事本.视频地址:http://www.pythoner.cn/course/topic/wxPython-gui/ (一)wxpython的安装 Ubuntu下的安装,还是比较简单的. #使用:apt-cache search wxpython 测试一下,可以看到相关信息 [email protected]:~/Python$ apt-cache