使用karloop开发一个媒体网站的demo
2015-07-08 23:47
716 查看
大家好,今天为大家介绍一款非常轻量级的的web开发框架,karloop框架。使用python开发
首先我们下载karloop源码进行安装。
源码地址
下载成功后解压,进入解压后的路径,进入终端,运行命令:sudo python setup.py install
如果是window系统,则打开cmd,运行:python setup.py install
我们按照如下路径创建一个项目:
├── base.py
├── config.py
├── handlers
│ ├── __init__.py
│ ├── handlers.py
│ └── pages.py
├── index.py
├── static
│ ├── js
│ │ ├── jquery-1.11.3.js
│ │ └── request.js
│ └── media
│ ├── 1.mp3
│ ├── 1.mp4
│ ├── 2.mp3
│ ├── 3.mp3
│ ├── 4.mp3
│ └── 5.mp3
└── template
├── main.html
└── media_list.html
首先我们来写一个base.py,所有的handler都可以继承,代码如下:
再来个index.py
上handlers.py的代码:
首先我们下载karloop源码进行安装。
源码地址
下载成功后解压,进入解压后的路径,进入终端,运行命令:sudo python setup.py install
如果是window系统,则打开cmd,运行:python setup.py install
我们按照如下路径创建一个项目:
├── base.py
├── config.py
├── handlers
│ ├── __init__.py
│ ├── handlers.py
│ └── pages.py
├── index.py
├── static
│ ├── js
│ │ ├── jquery-1.11.3.js
│ │ └── request.js
│ └── media
│ ├── 1.mp3
│ ├── 1.mp4
│ ├── 2.mp3
│ ├── 3.mp3
│ ├── 4.mp3
│ └── 5.mp3
└── template
├── main.html
└── media_list.html
首先我们来写一个base.py,所有的handler都可以继承,代码如下:
# coding=utf-8 __author__ = 'karl' import json from karloop.KarlBaseResponse import BaseResponse class BaseHandler(BaseResponse): def response_as_json(self, body): self.set_header('application/json; charset="utf-8"') response_data = json.dumps(body) return self.response(response_data)然后写config.py,代码如下:
# coding=utf-8 __author__ = 'karl' import os settings = { "static": os.path.join(os.path.dirname(__file__), "static/"), "template": os.path.join(os.path.dirname(__file__), "template/"), "cookie_code": "85701729" }
再来个index.py
# coding=utf-8 __author__ = 'karl' from config import settings from karloop.KarlBaseApplication import BaseApplication from handlers.pages import MainPage, MediaPage from handlers.handlers import ListAllMediaHandler from karloop.parse_command import parse_command_line handlers = { "/main": MainPage, "/media": ListAllMediaHandler, "/media_page": MediaPage } class MediaWebApplication(BaseApplication): def __init__(self): super(MediaWebApplication, self).__init__( handlers=handlers, settings=settings ) if __name__ == '__main__': media_web_application = MediaWebApplication() parse_command_line(application=media_web_application, default=8888) media_web_application.run()
上handlers.py的代码:
# coding=utf-8 __author__ = 'karl' from base import BaseHandler class ListAllMediaHandler(BaseHandler): def get(self): extension = self.get_argument("extension", "") if not extension: return self.response_as_json( { "error": "no valid parameter" } ) extension = extension.lower() media_dict = { "mp3": ["1.mp3", "2.mp3", "3.mp3", "4.mp3", "5.mp3"], "mp4": ["1.mp4", "2.mp4", "3.mp4"] } if extension not in media_dict.keys(): return self.response_as_json( { "error": "no data" } ) response_data = media_dict[extension] return self.response_as_json(response_data)pages.py的代码
# coding=utf-8 __author__ = 'karl' from karloop.KarlBaseResponse import BaseResponse class MainPage(BaseResponse): def get(self): dictionary = { "title": "Main Page" } main_string = "Welcome!" test_list = ["This is a demo.", "Developed use karloop."] return self.render( "main.html", { "test_dic": dictionary, "test_string": main_string, "test_list": test_list } ) class MediaPage(BaseResponse): def get(self): return self.render("media_list.html")整个项目的python 代码就这些,总体很简单,毕竟只是一个demo吗,项目的代码下载地址:点击
相关文章推荐
- 大型网站图片服务器架构的演进
- 从头开始建网站(三)DNS
- C/S与B/S架构的产品进行系统测试的区别
- [转]开发大型高负载类网站应用的几个要点
- [转]LAMP 系统性能调优,第 1 部分: 理解 LAMP 架构
- JavaScript HTML5 手机网站 基本功能
- 学习资源网站管理
- 网站框架
- iOS概述和架构
- 统计网站接口访问量
- diamond专题(三)—— diamond架构
- Ubuntu 14.10 下ZooKeeper+Hadoop2.6.0+HBase1.0.0 的HA机群高可用配置
- 分布式文件系统FastDFS架构剖析
- 电商峰值系统架构设计--转载
- PHP使用CURL实现对带有验证码的网站进行模拟登录的方法
- 传统的Web Form(三层架构) 与 MVC 的区别
- 支付宝钱包系统架构内部剖析(架构图)
- MVC与三层架构的异同点
- ALSA音频架构
- 一个好的网站,应该用什么样的空间or服务器?建站基础知识普及