| 考虑到工作的需要,又要学习一个新的东西——python这个帖子主要想对python有个初步的认识并查找一些资料以备以后的深入学习使用说明:以下操作全部在ubuntu 6.06下通过,另外code框里头的脚本好像不可以直接用需要去掉一些\字符(该博客系统自身的原因)。1. 安装环境python2.4 An interactive high-level object-oriented languagelibapache2-mod-python2.4 An Apache 2 module that embeds Python 2.4 within theserverpython2.4-mysqldb A Python interface to MySQL(安装这个是为了进行web数据库开发)安装:在进行下面的操作之前,请保证你已经安装好了apache2和mysql5另外,安装之后请重新启动apache(apache2ctl graceful)Quote:apt-get install python2.4 python2.4-mysqldb libapache2-mod-python2.4测试环境:打开终端,操作如下Quote:falcon@falcon:~$ pythonPython 2.4.3 (#2, Oct 6 2006, 07:52:30)[GCC 4.0.3 (Ubuntu 4.0.3-1ubuntu5)] on linux2Type "help", "copyright", "credits" or "license" for more information.>>> print "Hello, World!"Hello, World!>>>按CTRL+D退出2. 测试web环境下面我们在web页面里头输出"Hello, World!"当然,要实现这个,需要了解一定的CGI知识(见参考资料)下面是具体的代码test-python.cgiCode:#! /usr/bin/python
print "Content-type:text/html\n"
print "\n"
print "Hello, World!"
[Ctrl+A Select All]保存代码为test-python.cgi然后复制到/usr/lib/cgi-bin(请修改为你自己apache默认配置的cgi-bin目录)下面之后修改权限chmod 755 test-python.cgi然后,我们可以通过web访问http://localhost/cgi-bin/test-python.cgi是不是可以看到Hello, World!字样?3. 连接mysql数据库(这个操作原来这么简单)先来设计一个简单的数据库库名:test_python_db有一个表,表名为:test_python_tab,该表有编号字段id,和名字字段name下面是创建库和表的sql脚本test_python_db.sqlCode:-- MySQL dump 10.10
--
-- Host: localhost Database: test_python_db
-- ------------------------------------------------------
-- Server version 5.0.22-Debian_0ubuntu6.06.2-log
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP DATABASE IF EXISTS `test_python_db`;
CREATE DATABASE test_python_db;
USE test_python_db;
--
-- Table structure for table `test_python_tab`
--
DROP TABLE IF EXISTS `test_python_tab`;
CREATE TABLE `test_python_tab` (
`id` int(11) NOT NULL,
`name` char(50) NOT NULL default 'test python and mysql',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
--
-- Dumping data for table `test_python_tab`
--
/*!40000 ALTER TABLE `test_python_tab` DISABLE KEYS */;
LOCK TABLES `test_python_tab` WRITE;
INSERT INTO `test_python_tab` VALUES (1,'test1'),(2,'test2'),(3,'test3');
UNLOCK TABLES;
/*!40000 ALTER TABLE `test_python_tab` ENABLE KEYS */;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
[Ctrl+A Select All]把上面的内容保存起来,然后运行mysql -u db_user -p < test_python_db.sql就可以创建好我们需要的数据库和表,并插入三条数据下面就可以通过python来连接mysql数据库拉我们以最常见的查询操作来演示吧:select.pyCode:#!/usr/bin/python
import MySQLdb #导入python2.4-mysqldb模块,以提供操作mysql的接口
db_user = "在执行之前请修改为自己数据库的用户名"
db_pw = "在执行之前请修改为自己数据库对应用户名的密码"
db = MySQLdb.connect("localhost", db_user, db_pw ,"test_python_db")
c = db.cursor()
c.execute("""select id, name from test_python_tab""")
for id, name in c.fetchall():
print "%2d %s" % (id, name)
[Ctrl+A Select All]执行:python select.py(或者先用chmod修改权限chmod 755 select.py,然后直接运行./select.py)显示结果如下:Quote: 1 test1 2 test2 3 test3下面我们把这个脚本修改一下,作为web的cgi程序来执行修改后为:Code:#!/usr/bin/python
import MySQLdb #导入python2.4-mysqldb模块,以提供操作mysql的接口
db = MySQLdb.connect("localhost","falcon","wzhj302","test_python_db")
c = db.cursor()
c.execute("""select id, name from test_python_tab""")
print "Content-type:text/html\n"
#print "\n"
for id, name in c.fetchall():
print "%2d %s" % (id, name)
[Ctrl+A Select All]实际上我们只增加了一行:print "Content-type:text/html\n"(为什么呢?请查看cgi规范)到这里,我们发现,python可以用来进行web开发,并且可以很轻松的实现对数据库的操作关于python的更多优点或者缺点请大家自己参考官方网站和其他资料参考资料:1. 官方网站 http://www.python.org/2. python-mysql (教你怎么使用python-mysqldb)http://dustman.net/andy/python/python-and-mysql3. http://wiki.woodpecker.org.cn/moin/WeiZhong/该个人主页有一本翻译的《python精要》,感觉不错4. CGI规范http://www.xyxit.com/ReadNews.asp?NewsID=17865. 更多资料建议到e.pku.edu.cn进行文件检索 |