Hot For Coding
Python如何import文件夹下的文件

Python的import包含文件功能就跟PHP的include类似,但更确切的说应该更像是PHP中的require,因为Python里的import只要目标不存在就报错程序无法往下执行。要包含目录里的文件,PHP中只需要给对路径就OK。Python中则不同,下面来看看这个例子。

目录结构:

$ tree ./
./
├── a.py
└── dir
    └── b.py

a.py要import dir目录下的b.py文件。

b.py:

name = 'zhangsan'

a.py:

# coding=utf-8
"import dir 目录下的 b.py 文件"
 
import dir.b
 
print dir.b.name

...

READ ALL

web.py曲折的Hello word!

看了web.py相关手册以后,决定下载试试。web.py不大,下载解压然后python setup.py install安装成功。于是赶紧写出第一个激动人心的Hello word

代码如下:

# coding=utf-8
import web
 
urls=(
  '/','index'
)
 
class index:
  def GET(self):
    return 'Hello Word'
  
app=web.application(urls,globals())
app.run()

控制台运行如下:

python index.py 80
http://0.0.0.0:80/
http://0.0.0.0:80/

...

READ ALL

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