文档章节

【ZZ】Python(三):Karrigell与Python Web

 学徒1986
发布于 2013/07/29 22:09
字数 889
阅读 198
收藏 6


听闻:Google内部只使用C/C++,Java和Python三种语言,足以见得Python在未来的发展前景。此前两篇关于Python的学习笔记分别介绍了一些基本知识和爬网页的相关技巧,这一篇着重介绍学习Python在Web方面的入门。


在开始之前先说明两点:
1. 因为“系列笔记”是记录学习Python的过程而非Web架构,所以此篇选了一个相对简单的Karrigell架构作为例子;
2.“系列笔记”不会严格按照由浅入深的套路走,每一篇都相当于是一个独立的知识点。

那么什么是Web架构呢?大白话就是大牛们设计了这么一种基础设施:能高效且系统且模板化地进行Web开发。因此,有人把php语言和Python Web架构(Django,Karrigell)相互比较是不对的,因为两者根本就不是一种东西,而我虽然接触php也有一段时间了,但是并不看好它,一来php上手太容易了,必定会导致基础不牢,这个不牢不是指学习的人,而是指PHP语言本身;二来php并没有提供知名的Web架构,在愈来愈追求高效开发的未来时代,朴素的php不知道能不能撑住。

Karrigell我们可以读成:karr-igell;和典型的LAMP(linux+apache+mysql+php)不同,Karrigell把它们(除了mysql)都集合在一起了。所以少了很多配置错误可能的问题,它甚至可以和Apache同时在一个主机上工作。下面以两个例子说明Karrigell的入门使用:

一:确保你的机子上已经安装好Python,而且版本不能低于你接下来下载的Karrigell要求的版本,最保险的是安装最新的Python。

二:在这里下载Karrigell,例如我下载了:Karrigell-3.1.1.tar.gz.解压在任意文件目录下。

三:进入文件根目录,我们介绍三个对于本篇最主要也是对新手最主要的三个文件(目录)。
1.www目录,这个很容易理解,就是你网站的根目录;
2.server_config.py服务器的配置信息,你可以在这里配置诸如端口号等;
3.Karrigell.py,在命令行下执行python Karrigell.py便可以启动服务器,相当于开了Apache一样。此时在浏览器输入localhost便可以看到首页了。

四:我们不妨来Hello World一下,在www目录下新建hello.py如下所示:

print "Hello World"

然后在浏览器输入:localhost/hello.py便可以看到输出了~

五:下面我们来一个稍微复杂点的例子,理解Karrigell架构是如何通过GET/POST来传递信息的,我们修改hello.py如下:

#FORM,INPUT,HTML这些可以理解成html语言的标签,因为是入门,所以也不多说了
from HTMLTags import *
form = FORM(action="sayhi")
form <= INPUT(name = "name")
form <= INPUT(Type = "submit", value = "OK")
print HTML(BODY(form))

再新建一个sayhi.py文件:

print "Hello"+QUERY['name']

此时你刷新:localhost/hello.py并在页面表达里输入你的姓名,点击OK,便可以看到Hello XXX的信息了。

六:总结一番,虽然我们只写了两个不能再简单的例子,但是我们可以看出和php很明显的不同,你完全不用写任何html标签的语句!而本人在写php时最揪心的就是老是在php和html之间来回切换,弄得狼狈不堪。


本文转载自:http://www.ccpt.cc/python_3_karrigell_and_web/#more-471

粉丝 1
博文 71
码字总数 13323
作品 0
朝阳
私信 提问
Karrigell 中文版官方文档

1. Introduction Karrigell是一个用Python写的简单的Web解决方案。它被设计的简单易用:集成web server和数据库(PyDbLite), 可以通过简单的方式访问环境变量和表单字段,但是Karrigell的功能...

鉴客
2010/03/21
955
0
Karrigell 3.0.4 发布,Python框架

karrigell,一个支持用python开发web程序的框架,说的再明白一些,就是一个可以解释python脚本的web服务器. Changes: 1, Session management in multi-threaded and multi-process environments...

红薯
2010/02/28
504
0
【ZZ】python的打包和解包(tuple)

问题 你想去交换一些变量的值,但是你不想使用临时变量。 解决 python的自动元组打包和解包可以做到这点: a, b, c = b, c, a Python代码 a, b, c = b, c, a 讨论 许多程序语言让你使用临时中...

学徒1986
2013/09/11
0
0
【ZZ】Python下划线与命名规范

Python下划线与命名规范 以下分四种情况说明下划线的作用,python对成员域没有严格控制,大部份只是作为命名规范存在,以下英文部份摘自python官方网站 singleleadingunderscore: weak "int...

学徒1986
2013/09/03
0
0
学好 Python 的 11 个优秀资源

Python是目前最流行、最易学最强大的编程语言之一(学习Python的五大理由),无论你是新手还是老鸟,无论是用于机器学习还是web开发(Pinterest就是案例),Python都是一件利器。此外,Pytho...

oschina
2015/12/01
13.8K
15

没有更多内容

加载失败,请刷新页面

加载更多

Android Camera模块解析之拍照

最近学习Android的camera模块,本文先介绍一下camera2的api,然后给出android camera拍照的例子,讲解一下camera 拍照的原因知识,与大家共勉。 camera2 介绍 android camera拍照功能介绍 一...

天王盖地虎626
14分钟前
4
0
Excel 曝Power Query安全漏洞

近日,Mimecast 威胁中心的安全研究人员,发现了微软 Excel 电子表格应用程序的一个新漏洞,获致 1.2 亿用户易受网络攻击。其指出,该安全漏洞意味着攻击者可以利用 Excel 的 Power Query 查...

linuxCool
21分钟前
1
0
SpringBoot | 第三十八章:基于RabbitMQ实现消息延迟队列方案

前言 >前段时间在编写通用的消息通知服务时,由于需要实现类似通知失败时,需要延后几分钟再次进行发送,进行多次尝试后,进入定时发送机制。此机制,在原先对接银联支付时,银联的异步通知也...

oKong
21分钟前
3
0
Excel 曝Power Query安全漏洞

近日,Mimecast 威胁中心的安全研究人员,发现了微软 Excel 电子表格应用程序的一个新漏洞,获致 1.2 亿用户易受网络攻击。其指出,该安全漏洞意味着攻击者可以利用 Excel 的 Power Query 查...

linux-tao
37分钟前
1
0
Java - NIO框架

Java NIO提供了与标准IO不同的IO工作方式。 Channels and Buffers(通道和缓冲区) 标准IO基于字节流和字符流,NIO基于通道(Channel)和缓冲区(Buffer)。数据从channel读取到buffer,或从Buffe...

丰田破产标志
41分钟前
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部