1,使用python提交post请求时,如果参数中包含中文,则会提交失败,因此需要将参数进行utf-8编码,示例如下:
2,一直在linux下使用python2.4,习惯了print 'hello'这样的写法,今天换到windows下,并且安装了python3.1后发现print是一个函数,因此要写成print('hello'),悲剧,但目前项目中都还是用的老旧的语法,还是得继续2.4才好。
3,python中序列化及反序列化一个对象,

代码
defserializeObject(obj,filePath):
output=open(filePath,'wb')#二进制写模式打开
pickle.dump(obj,output)#序列化
output.close()
defdeSerializeObject(filePath):
try:
in=open(filePath,'rb')#二进制读模式打开
obj=pickle.load(in)#反序列化
returnobj
exceptEOFError:
returnNone
exceptIOError:
returnNone
4,使用trigger_error而不是die,这样对用户来说更加友好
5,mysql_query对于select等返回resultset的sql语句来说,运行成功返回一个resource,发生错误则返回FALSE,而对于insert,update,
delete,drop等sql语句,运行成功返回TRUE,发生错误则返回FALSE;

代码
//Thiscouldbesuppliedbyauser,forexample
$firstname='fred';
$lastname='fox';
//FormulateQuery
//ThisisthebestwaytoperformaSQLquery
//Formoreexamples,seemysql_real_escape_string()
$query=sprintf("SELECTfirstname,lastname,address,ageFROMfriendsWHEREfirstname='%s'ANDlastname='%s'",
mysql_real_escape_string($firstname),
mysql_real_escape_string($lastname));
//PerformQuery
$result=mysql_query($query);
//Checkresult
//ThisshowstheactualquerysenttoMySQL,andtheerror.Usefulfordebugging.
if(!$result){
$message='Invalidquery:'.mysql_error()."/n";
$message.='Wholequery:'.$query;
die($message);
}
//Useresult
//Attemptingtoprint$resultwon'tallowaccesstoinformationintheresource
//Oneofthemysqlresultfunctionsmustbeused
//Seealsomysql_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'];
}
//Freetheresourcesassociatedwiththeresultset
//Thisisdoneautomaticallyattheendofthescript
mysql_free_result($result);
?>
6,mysql_fetch_array其实是取结果集的一行到一个数组中,它可以是一个关联数组(MYSQL_ASSOC)或数字数组(MYSQL_NUM),默认情况下两者都可以使用

代码
mysql_connect("localhost","mysql_user","mysql_password")or
die("Couldnotconnect:".mysql_error());
mysql_select_db("mydb");
$result=mysql_query("SELECTid,nameFROMmytable");
while($row=mysql_fetch_array($result,MYSQL_BOTH)){
printf("ID:%sName:%s",$row[0],$row["name"]);
}
mysql_free_result($result);
?>
与mysql_fetch_row相比,mysql_fetch_array也并不慢的

代码
$result=mysql_query("SELECTid,emailFROMpeopleWHEREid='42'");
if(!$result){
echo'Couldnotrunquery:'.mysql_error();
exit;
}
$row=mysql_fetch_row($result);
echo$row[0];//42
echo$row[1];//theemailvalue
?>
7,mysql_close()并不一定需要写,因为非持久的连接会在脚本执行完毕后自动关闭
Python Web开发基础与技巧
本文介绍了使用Python进行Web开发的基础知识,包括处理POST请求、语法升级、对象序列化、错误处理、数据库交互以及结果集操作等核心内容。强调了编码、语法规范、资源管理的重要性,并提供了实际代码示例。
1090

被折叠的 条评论
为什么被折叠?



