【python web框架之 bobo的安装配置】

【Mac】

我的Mac环境,python3.5

1. 安装bobo  :   >>> pip3 install bobo

2. 配置环境变量:

$: vi ~/.bash_profile

加一行:alias  bobo = "地址" (我刚install完bobo后,在python3.5的bin里多了个bobo的启动文件,这个地址就是这个启动文件的地址)

退出vi

$: source ~/.bash_profile

3. 创建使用bobo的方法在某个py文件 ,文件内容

import bobo
@bobo.query('/')
def hello(person):
return 'Hello %s' % person

4. $: bobo -f py文件地址/py文件名字。

这样就启动了bobo开发服务器

5. 进入浏览器,输入:localhost:8080

6. 浏览器显示“Missing form variable person”

7. 另开一个终端输入curl -i http://localhost:8080/,打印如下

HTTP/1.0 403 Forbidden

Date: Fri, 06 Oct 2017 06:20:35 GMT

Server: WSGIServer/0.2 CPython/3.5.3

Content-Type: text/html; charset=UTF-8

Content-Length: 103

<html>

<head><title>Missing parameter</title></head>

<body>Missing form variable person</body>

</html>

8 另外开一个终端,输入:curl -i http://localhost:8080/?person=jim

终端打印:

HTTP/1.0 200 OK

Date: Fri, 06 Oct 2017 06:21:14 GMT

Server: WSGIServer/0.2 CPython/3.5.3

Content-Type: text/html; charset=UTF-8

Content-Length: 9

浏览器输入localhost:8080/?person=jim ,浏览器显示:

Hello jim

【Windows7】

1.Introduction

Bobo是一个轻量级的框架,用来创建WSGI web应用。它的目标是简单易用,容易记忆。

它强调两个方面的内容:

1)把URL映射到对象; 
2)调用对象来生成HTTP响应。

Bobo 并不具备模板语言,数据库集成层或是其他一些WSGI中间件或特定应用程序库所提供的功能。Bobo建立在其他框架之上,尤其是WSGI和WebOb。

2.Installation

这里介绍一种安装方式。 
下载bobo包:http://download.csdn.net/detail/mtbaby/9910792

或者官网下载:https://pypi.python.org/pypi/bobo

下载后将其解压到python的安装目录lib/site-packages下。

如我Python目录:

C:\Python27\Lib\site-packages\bobo-2.4.0

在该目录打开cmd,输入python setup.py install命令:

安装完成后,会发现生成一个.egg的文件;

3.使用示例 
我们创建一个迷你的Web应用程序“Hello World”。我们会把它放在一个名为“hello.py”的文件中:

#coding:utf-8
import bobo
@bobo.query
def hello():
return "Hello world!"

这个应用程序创建一个单一的Web资源,即“html”,它只输出文本“Hello World”。

接下来访问这个服务器;

首先打开该文件所在文件夹的cmd,比如我的hello.py这个文件在

F:\eclipse-cpp-workspace\LearnPython\爬虫

那么打开此处的cmd,输入命令

bobo -f hello.py

这将启动一个Web服务器在本地主机端口8080运行。

接下来访问服务器:

打开浏览器,输入

 http://localhost:8080/hello.html

会看到

Hello World

我们将通过提供一个URL路径:

#coding:utf-8
import bobo
@bobo.query('/')
def hello():
return "Hello world!"

我们用于访问应用程序的URL是由资源的函数的名称和装饰用的内容类型,默认为“text/html;charset= UTF-8”。让我们改变应用程序,这样我们就可以使用URL:

http://localhost:8080/

在这里,我们通过了一个查询装饰器的路径。我们使用了一个“/”字符串,它可以像上面的工作一样创建一个URL。(我们也省略了简洁的输入)。

我们不需要重新启动服务器来查看我们的更改。如果它改变,bobo 开发服务器自动重新加载文件。

顾名思义,查询装饰器的工作是使用返回信息的资源,可能使用表单数据。让我们修改应用程序,允许将问候者的名字作为表单数据给出:

#coding:utf-8
import bobo
@bobo.query('/')
def hello(name="World"):
return "Hello %s!"%name

如果一个函数接受命名参数,那么数据将从表单数据中提供。如果访问:

http://localhost:8080/?name=mtbaby

则输出

Hello mtbaby!


												

【Python】【有趣的模块】【Bobo】的更多相关文章

  1. 【Python】【有趣的模块】tqdm | inspect

    tqdm """ [tqdm] 显示循环的进度条,再也不用担心程序跑到哪里还要跑多久了 tqdm 可以直接包裹iterable对象 from tqdm import tq ...

  2. Python的regex模块——更强大的正则表达式引擎

    Python自带了正则表达式引擎(内置的re模块),但是不支持一些高级特性,比如下面这几个: 固化分组    Atomic grouping 占有优先量词    Possessive quantifi ...

  3. python之platform模块

    python之platform模块 ^_^第三个模块从天而降喽!! 函数列表 platform.system() 获取操作系统类型,windows.linux等 platform.platform() ...

  4. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  5. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  6. 学习PYTHON之路, DAY 6 - PYTHON 基础 6 (模块)

    一 安装,导入模块 安装: pip3 install 模块名称 导入: import module from module.xx.xx import xx from module.xx.xx impo ...

  7. linux下python调用c模块

    在C调用Python模块时需要初始化Python解释器,导入模块等,但Python调用C模块却比较简单,下面还是以helloWorld.c 和 main.py 做一说明:   (1)编写C代码,hel ...

  8. Python学习之模块进程函数详解

    今天在看<Beginning Linux Programming>中的进程相关部分,讲到Linux几个进程相关的系统函数: system , exec , fork ,wait . Pyt ...

  9. python基础——第三方模块

    python基础——第三方模块 在Python中,安装第三方模块,是通过包管理工具pip完成的.  如果你正在使用Mac或Linux,安装pip本身这个步骤就可以跳过了.  如果你正在使用Window ...

随机推荐

  1. Oracle数据库返回字符类型-1~1的结果处理

    如果实体类中定义的字段是String类型,Oracle数据库中返回的是数字类型,那么Oracle返回0.xxx的时候会丢失前面的0. 要想不丢失0,那么数据库返回的就要是字符串类型的,所以要将返回值转 ...

  2. 网站被XMR恶意挖矿

    发现: 网站首页被恶意更改 网站的关键词和描述被恶意更改 服务器和只要访问此服务器上的网页cup 直线上升100% 排查代码发现js 文件被恶意更改,访问了挖矿网站 操作:删除js 里面的恶意代码,更 ...

  3. 验证 Googlebot (检查是否为真的Google机器人)

    您可以验证访问您服务器的网页抓取工具是否确实是 Googlebot(还是其他 Google 用户代理).如果您担心自称是 Googlebot 的垃圾内容发布者或其他麻烦制造者访问您的网站,则会发现该方 ...

  4. 弱分类器的进化--Bagging、Boosting、Stacking

    一般来说集成学习可以分为三大类: 用于减少方差的bagging 用于减少偏差的boosting 用于提升预测结果的stacking 一.Bagging(1996) 1.随机森林(1996) RF = ...

  5. Ubuntu 14.04 安装 SteamOS 会话

    如何在Ubuntu 14.04上安装steamos会话,以使用户的SteamOS 大图片模式直接从lightdm GTK迎宾开始进入. SteamOS是一个开源的基于Debian Wheezy分支的. ...

  6. Java jdbc 操作数据库详解

    原文地址https://www.cnblogs.com/huguodong/p/5910859.html JDBC(Java Data Base Connectivity,java数据库连接)是一种用 ...

  7. BCB ERROR:[Linker Error] 'XXX.LIB' contains invalid OMF record, type 0x21 (possibly COFF)

    今天C++builder 导入 gts .lib  (gts.dll)库文件 编译报错: [Linker Error] 'D:\...\V4.05.007.1000-20161028\GTS.LIB' ...

  8. 使用TreeView加载XML文件

    PS: 由于小弟初学编程,本文只写实现方式,代码写的不是很好请见谅! 1.需要读取的xml文档内容 2. 最终实现效果 3  貌似看起实现起来很复杂 但是想想还是挺简单 思路:  读取XML文档 →获 ...

  9. [How to] ROOT, Backup & Flash (MTKDroidTools, Spflashtool, CWM)

    这是一篇来自xda论坛的文章,写得很详细,很有用,以下是原文: Hi This is a guide to ROOT, backup and flash your MTK65xx or Other d ...

  10. sql 事务运用实例

    ------------------------------ create proc SaveFinancialProduct@FinancialName nvarchar(50),--产品名称@Yi ...