使用karloop开发一个媒体网站的demo

原创 2015年07月08日 23:47:45

大家好,今天为大家介绍一款非常轻量级的的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都可以继承,代码如下:

# 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吗,项目的代码下载地址:点击

相关文章推荐

一个不错的网站媒体播放器

  • 2009年11月07日 21:44
  • 123KB
  • 下载

red5流媒体服务器一个正常的demo

  • 2017年05月14日 11:11
  • 24.99MB
  • 下载

实时监控、直播流、流媒体、视频网站开发方案设计简要

一、数据源获取 1、本地:采用javaCV(推荐)或者jmf可以很方便的获取到本地摄像头流媒体 2、监控(第三方摄像头):通过设备sdk或者rtsp直播流获取流媒体 二、协议转换和流媒体发布 直播:通...
  • eguid_1
  • eguid_1
  • 2016年06月21日 11:22
  • 12765

android媒体库使用demo及相关工具

  • 2015年10月26日 16:16
  • 26.63MB
  • 下载

SP2013定义网站栏的一个demo.rar

  • 2013年12月09日 11:08
  • 33KB
  • 下载

使用 CSS 媒体查询创建响应式网站

适用于所有屏幕大小的设计 固定宽度的静态网站很快被灵活的响应式设计所取代,该设计可以根据屏幕大小进行上扩和下扩。利用响应式设计,无论您采用什么设备或屏幕来访问网站,都可以呈现一个可用...
  • xhjfor
  • xhjfor
  • 2014年07月23日 09:55
  • 547

Qt使用GLSL开发的一个demo

  • 2017年04月21日 11:45
  • 5KB
  • 下载

使用百度地图开发一个导航定位demo-android学习之旅(77)

首先介绍如何导入百度地图步骤(其实官方文档写的很清楚了)http://developer.baidu.com/map/index.php?title=androidsdk/guide/introduc...

实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解

一、nginx的hls配置实例 rtmp   {         server     {        listen 1935;        chunk_size 8192;   ...

实时监控、直播流、流媒体、视频网站开发方案流媒体服务器搭建及配置详解:使用nginx搭建rtmp直播、rtmp点播、,hls直播服务配置详解

配置详解 注:配置指令的解释基于nginx官方的2013年nginx-rtmp-model文档 1、rtmp{} 是一个用于保存所有rtmp配置的块 在这里就是rtmp直播录播配置的根 2、serv...
  • eguid_1
  • eguid_1
  • 2016年07月04日 17:45
  • 6217
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用karloop开发一个媒体网站的demo
举报原因:
原因补充:

(最多只允许输入30个字)