• Django配置URL需要注意的地方

    Django中每一个视图的访问都需要配置相应的URL,然而配置URL的时候需要注意末尾是否加了/符号,这个会影响到你的表单提交或者Ajax异步提交的问题。

    我们先来看看第一个实例,比如我的URL规则

    url(r'^users/api/(\w{1,20})/$','api')

    那么我们Ajax提交到这个URL的时候,就需要写完整的URL

    http://127.0.0.1/users/api/add/

    不能写

    http://127.0.0.1/users/api/add

    下面来看看提交到http://127.0.0.1/users/api/add的结果

    ...

    READ ALL

  • Django POST CSRF verification failed. Request aborted

    环境

    • Windows 7
    • Python2.7
    • Django1.4.1
    • sqlite3

    问题

    在使用Django搭建好测试环境后,写了一个提交POST表单提交留言的测试页面。

    如图:

    full

    填写表单,点击“提交留言”按钮提交到服务器,却出现

    Forbidden (403)
    CSRF verification failed. Request aborted.

    由于之前使用GET方式提交表单内容测试均正常,就以为这个问题估计是配置问题没细看后边的帮助提示直接在网上搜索解决方案。

    ...

    READ ALL

  • Django新版添加app提示模块不存在解决方法

    使用Django添加应用的时候,一直提示

    Error: No module named myapp

    意思是找不到这个名字的应用,可是我已经startapp成功,并且系统已经创建相应的目录

    D:\Python27\Scripts\website>python manage.py syncdb
    Error: No module named myapp
    

    难道官方的文档有错,我manage.py startapp myapp已经成功,并且已经创建目录与文件。

    并在settings.pyINSTALLED_APPS里添加应用,如下代码

    ...

    READ ALL

  • Python如何连接MySQL数据库

    在PHP中要连接MySQL需要开启模块,在Python中同样也是需要安装MySQLdb模块再import相应模块才能操作MySQL数据库。

    下载模块

    下载地址 https://sourceforge.net/projects/mysql-python/

    注意:如果你的Python是64位的,请下载64位,如果你的Python是32位则下载32位。否则安装后再使用时会提示这不是有效的Win32位程序

    安装模块

    如果是Win系统,只管点击next下一步安装就好。

    如果是Linux系统,按以下步骤安装

    wget -O python-1.2.3c1.tar.gz http://cdnetworks-kr-1.dl.sourceforge.net/project/mysql-python/mysql-python-test/1.2.3c1/MySQL-python-1.2.3c1.tar.gz
    tar xzvf python-1.2.3c1.tar.gz
    cd MySQL-python-1.2.3c1
    python setup.py build
    

    ...

    READ ALL

  • Python中遍历字典

    Python字典的遍历方法有好几种,其中一种是for...in,这个我就不说明,在Python了几乎随处都可见for...in。下面说的这种遍历方式是item()方法。

    item()

    item()方法把字典中每对key和value组成一个元组,并把这些元组放在列表中返回。

    DEMO

    Code

    # coding=utf8
    
    person={
      'name':'Nicholas',
      'age':'26',
      'city':'BeiJing',
      'blog':'www.qttc.net'
    }
    
    for key,value in person.items():
      print 'key=',key,',value=',value
    

    ...

    READ ALL

  • Python创建目录文件夹

    Python对文件的操作还算是方便的,只需要包含os模块进来,使用相关函数即可实现目录的创建。

    主要涉及到三个函数

    • os.path.exists(path) 判断一个目录是否存在
    • os.makedirs(path) 多层创建目录
    • os.mkdir(path) 创建目录

    DEMO

    直接上代码

    def mkdir(path):
      # 引入模块
      import os
    
      # 去除首位空格
      path=path.strip()
      # 去除尾部 \ 符号
      path=path.rstrip("\\")
    
      # 判断路径是否存在
      # 存在     True
      # 不存在   False
      isExists=os.path.exists(path)
    
      # 判断结果
      if not isExists:
        # 如果不存在则创建目录
        print path+' 创建成功'
        # 创建目录操作函数
        os.makedirs(path)
        return True
      else:
        # 如果目录存在则不创建,并提示目录已存在
        print path+' 目录已存在'
        return False
    
    # 定义要创建的目录
    mkpath="d:\\qttc\\web\\"
    # 调用函数
    mkdir(mkpath)
    

    ...

    READ ALL

  • Python的startswith与endswith函数

    在Python中有两个函数分别是startswith()函数与endswith()函数,功能都十分相似,startswith()函数判断文本是否以某个字符开始,endswith()函数判断文本是否以某个字符结束。

    startswith()函数

    此函数判断一个文本是否以某个或几个字符开始,结果以True或者False返回。

    text='welcome to qttc blog'
    print text.startswith('w')      # True
    print text.startswith('wel')    # True
    print text.startswith('c')      # False
    print text.startswith('')       # True
    

    ...

    READ ALL

  • Python元组添加元素方法

    在Python的元组中,一旦创建就不能改变。也没有提供向元组添加元素的操作函数,因此,要向已创建好的元组添加元素只能另创方法。

    我们知道,元组中的每一个元素的数据类型都不限制,根据这一点我们可以这么做

    # coding=utf8
     
    tuple=('a','b','c')
    print '原先的元组:',tuple
     
    newTuple=(tuple,'d','e')
    print '添加元素后的元组:', newTuple
    

    打印结果

    ('a', 'b', 'c')
    (('a', 'b', 'c'), 'd', 'e')

    虽然是重新声明了一个元组,但不影响元素的使用。新的元素有三个元素,而第一个元素是一个元组,其余的元素则是字符串。这样的元组显然不是我们想要的格式,但可以使用嵌套循环遍历二维元组也可以取得全部元素。

    ...

    READ ALL

  • Python中filter()过滤函数

    filter函数

    filter()函数可以对序列做过滤处理,就是说可以使用一个自定的函数过滤一个序列,把序列的每一项传到自定义的过滤函数里处理,并返回结果做过滤。最终一次性返回过滤后的结果。

    filter()函数有两个参数:

    • 自定函数名,必须
    • 需要过滤的列,必须

    DEMO

    需求,过滤大于5小于10的数

    # coding=utf8
    # 定义大于5小于10的函数
    def guolvhanshu(num):
      if num>5 and num<10:
        return num
     
    # 定义一个序列
    seq=(12,50,8,17,65,14,9,6,14,5)
     
    # 使用filter函数
    result=filter(guolvhanshu,seq)
     
    # Output: (8,9,6)
    print result
    

    ...

    READ ALL

  • Python字符串与数字拼接报错

    Python不像JavaScript或者PHP这种弱类型语言里在字符串连接时会自动转换类型,而是直接报错。要解决这个方法只有提前把int转成string,然后再拼接字符串即可。

    如代码:

    # coding=utf8
    str = '你的分数是:'
    num = 82
    text = str + num + '分 | 琼台博客'
    print text 
    

    这段程序会报错

    TypeError: cannot concatenate 'str' and 'int' objects

    错误原因是类型不匹配,解决这个方法只有提前把num转换为字符串类型,可以使用bytes函数把int型转换为string型。

    ...

    READ ALL