本站首页    管理页面    写新日志    退出


«December 2025»
123456
78910111213
14151617181920
21222324252627
28293031


公告
 本博客在此声明所有文章均为转摘,只做资料收集使用。

我的分类(专题)

日志更新

最新评论

留言板

链接

Blog信息
blog名称:
日志总数:1304
评论数量:2242
留言数量:5
访问次数:7670795
建立时间:2006年5月29日




[Python]Python web开发初步
软件技术

lhwork 发表于 2006/12/29 9:42:51

考虑到工作的需要,又要学习一个新的东西——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进行文件检索


阅读全文(7232) | 回复(0) | 编辑 | 精华
 



发表评论:
昵称:
密码:
主页:
标题:
验证码:  (不区分大小写,请仔细填写,输错需重写评论内容!)



站点首页 | 联系我们 | 博客注册 | 博客登陆

Sponsored By W3CHINA
W3CHINA Blog 0.8 Processed in 0.047 second(s), page refreshed 144818300 times.
《全国人大常委会关于维护互联网安全的决定》  《计算机信息网络国际联网安全保护管理办法》
苏ICP备05006046号