首页 > 未分类 > Python 架设网站

Python 架设网站

2013年6月11日 发表评论 阅读评论

   Python开发一个服务器很方便,模块封装的很好。写了个简易网站。

   说一下大体思路。首先,写个5行的服务器启动,默认打开index.html。在首页中作超链接跳转,到脚本上。在脚本中现将数据打包(也可以理解为将数据从库中提取出来),然后写出网页,并设定好表单等元素。用户点击,进入下一个脚本……

 
    整体来说,通常采用MCV架构:
模型(Module):存储(以及有时处理Web应用数据的代码
视图(View):格式化和显示Web应用用户界面的代码
控制器(Controller):将Web应用”粘合“在一起并提供业务逻辑

M 为数据建模
Web服务器需要一个存储数据的副本。当Web应用启动时,需要把文件中的信息读出来。这里是一个打包好的Pickle,也可能是在程序启动时,搜集相应的文件打的包,因为可能要下发到本地。
小例子没使用数据库,使用pickle即可,注意I/O异常检测。
V 查看界面
使用First Head 书中带的yate.py来生成html。估计应该有其他更NB的PiPy。
C 控制代码
推荐采用以下结构:
WebApp:顶层文件夹是程序的名字,除了子文件夹,还包括web应用的index.html文件,图标,样式表等不适合放在其子文件夹中的内容。
cgi-bin:为Web应用写的所有代码需要放在这里。
data:所有数据在这里
image:如果有必要就创建一个这个文件,将图标、图片放在里面
templates:一些套用的模板

构建服务器必须的信息代码:
from http.server import HTTPServer,CGIHTTPRequestHandler
port = 8080
httpd = HTTPServer(('',port),CGIHTTPRequestHandler) #创建一个服务器
print("Strating simpleHttpd on port: "+str(httpd.server_port))
httpd.serve_forever() #弹出提示并启动服务器

    运行这个文件(命令为 python.exe XXX.py),则在访问相应端口时就会启动本层文件中的index.html。如果没有则显示层级文件。所以运行这几行代码就完成了服务器的架设了。
    操作的跳转则在html中做。例如:超链接<a href="cgi-bin/generate_list.py">timing data</a>
    这样就运行相应的脚本了。

    访问方式大家都知道了:在浏览器中输入:localhost:8080 就行了。

下面是一些能用到的小知识点:

文件操作:glob
查询一个文件列表:data_fales = glob.glob("../data/*.txt")

网页相关的库:cgi
    获取表单数据:数据将作为一个字典返回
    cgi.FieldStorate()
    athlete_name = form_data['which_athlete'].value

开启调试:使用cgitb可以将崩溃问题显示到网页上。

    import cgitb
    cgitb.enable()

将类方法表现为属性:@property
当类中的方法上用@property修饰时,这个类方法表现为一个属性。即使用"."来直接使用,而不用再加括号。


标准库string中包括一个名为Template的类,它支持简单的字符串替换:

with open('../templates/header.html') as headf:
head_text = headf.read()
header = Template(head_text)
return(header.substitute(title=the_title))

代码 http://download.csdn.net/detail/fansongy/5564213

  本篇博客出自阿修罗道,转载请注明出处:http://blog.csdn.net/fansongy/article/details/9076549

分类: 未分类 标签:
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.