1,使用python提交post请求时,如果参数中包含中文,则会提交失败,因此需要将参数进行utf-8编码,示例如下:
self.name
=
name.encode(
"
utf-8
"
)
2,一直在linux下使用python2.4,习惯了print 'hello'这样的写法,今天换到windows下,并且安装了python3.1后发现print是一个函数,因此要写成print('hello'),悲剧,但目前项目中都还是用的老旧的语法,还是得继续2.4才好。
3,python中序列化及反序列化一个对象,
代码
import
pickle
def serializeObject(obj, filePath):
output = open(filePath, ' wb ' ) # 二进制写模式打开
pickle.dump(obj, output) # 序列化
output.close()
def deSerializeObject(filePath):
try :
in = open(filePath, ' rb ' ) # 二进制读模式打开
obj = pickle.load( in ) # 反序列化
return obj
except EOFError:
return None
except IOError:
return None
def serializeObject(obj, filePath):
output = open(filePath, ' wb ' ) # 二进制写模式打开
pickle.dump(obj, output) # 序列化
output.close()
def deSerializeObject(filePath):
try :
in = open(filePath, ' rb ' ) # 二进制读模式打开
obj = pickle.load( in ) # 反序列化
return obj
except EOFError:
return None
except IOError:
return None
4,使用trigger_error而不是die,这样对用户来说更加友好
mysql_connect
(
$host
,
$user
,
$password
) or
trigger_error
(
"
Could not connect:
"
.
mysql_error
());
5,mysql_query对于select等返回resultset的sql语句来说,运行成功返回一个resource,发生错误则返回FALSE,而对于insert,update,
delete,drop等sql语句,运行成功返回TRUE,发生错误则返回FALSE;
代码
<?
php
// This could be supplied by a user, for example
$firstname = ' fred ' ;
$lastname = ' fox ' ;
// Formulate Query
// This is the best way to perform a SQL query
// For more examples, see mysql_real_escape_string()
$query = sprintf ( " SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s' " ,
mysql_real_escape_string ( $firstname ) ,
mysql_real_escape_string ( $lastname ));
// Perform Query
$result = mysql_query ( $query );
// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if ( ! $result ) {
$message = ' Invalid query: ' . mysql_error () . " /n " ;
$message .= ' Whole query: ' . $query ;
die ( $message );
}
// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ( $row = mysql_fetch_assoc ( $result )) {
echo $row [ ' firstname ' ];
echo $row [ ' lastname ' ];
echo $row [ ' address ' ];
echo $row [ ' age ' ];
}
// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result ( $result );
?>
// This could be supplied by a user, for example
$firstname = ' fred ' ;
$lastname = ' fox ' ;
// Formulate Query
// This is the best way to perform a SQL query
// For more examples, see mysql_real_escape_string()
$query = sprintf ( " SELECT firstname, lastname, address, age FROM friends WHERE firstname='%s' AND lastname='%s' " ,
mysql_real_escape_string ( $firstname ) ,
mysql_real_escape_string ( $lastname ));
// Perform Query
$result = mysql_query ( $query );
// Check result
// This shows the actual query sent to MySQL, and the error. Useful for debugging.
if ( ! $result ) {
$message = ' Invalid query: ' . mysql_error () . " /n " ;
$message .= ' Whole query: ' . $query ;
die ( $message );
}
// Use result
// Attempting to print $result won't allow access to information in the resource
// One of the mysql result functions must be used
// See also mysql_result(), mysql_fetch_array(), mysql_fetch_row(), etc.
while ( $row = mysql_fetch_assoc ( $result )) {
echo $row [ ' firstname ' ];
echo $row [ ' lastname ' ];
echo $row [ ' address ' ];
echo $row [ ' age ' ];
}
// Free the resources associated with the result set
// This is done automatically at the end of the script
mysql_free_result ( $result );
?>
6,mysql_fetch_array其实是取结果集的一行到一个数组中,它可以是一个关联数组(MYSQL_ASSOC)或数字数组(MYSQL_NUM),默认情况下两者都可以使用
代码
<?
php
mysql_connect ( " localhost " , " mysql_user " , " mysql_password " ) or
die ( " Could not connect: " . mysql_error ());
mysql_select_db ( " mydb " );
$result = mysql_query ( " SELECT id, name FROM mytable " );
while ( $row = mysql_fetch_array ( $result , MYSQL_BOTH)) {
printf ( " ID: %s Name: %s " , $row [ 0 ] , $row [ " name " ]);
}
mysql_free_result ( $result );
?>
mysql_connect ( " localhost " , " mysql_user " , " mysql_password " ) or
die ( " Could not connect: " . mysql_error ());
mysql_select_db ( " mydb " );
$result = mysql_query ( " SELECT id, name FROM mytable " );
while ( $row = mysql_fetch_array ( $result , MYSQL_BOTH)) {
printf ( " ID: %s Name: %s " , $row [ 0 ] , $row [ " name " ]);
}
mysql_free_result ( $result );
?>
与mysql_fetch_row相比,mysql_fetch_array也并不慢的
代码
<?
php
$result = mysql_query ( " SELECT id,email FROM people WHERE id = '42' " );
if ( ! $result ) {
echo ' Could not run query: ' . mysql_error ();
exit ;
}
$row = mysql_fetch_row ( $result );
echo $row [ 0 ]; // 42
echo $row [ 1 ]; // the email value
?>
$result = mysql_query ( " SELECT id,email FROM people WHERE id = '42' " );
if ( ! $result ) {
echo ' Could not run query: ' . mysql_error ();
exit ;
}
$row = mysql_fetch_row ( $result );
echo $row [ 0 ]; // 42
echo $row [ 1 ]; // the email value
?>
7,mysql_close()并不一定需要写,因为非持久的连接会在脚本执行完毕后自动关闭