Python Pecan框架

本文详细介绍了Python Web框架Pecan的安装步骤,包括配置pip源、创建虚拟环境和项目,展示了项目目录结构,并解释了WSGI的工作原理及Pecan框架的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、安装Pecan

更改pip镜像源

mkdir ~/.pip
echo """
[global]
trusted-host=mirrors.aliyun.com
index-url=http://mirrors.aliyun.com/pypi/simple/
""" >> ~/.pip/pip.conf
cat ~/.pip/pip.conf

执行pip安装

pip install pecan

2、创建pecan项目

luckylau@luckylau-Ubuntu:~$virtualenv pecan-env
luckylau@luckylau-Ubuntu:~$cd pecan-env/
luckylau@luckylau-Ubuntu:~/pecan-env$ source bin/activate
(pecan-env) luckylau@luckylau-Ubuntu:~/pecan-env$ pip install pecan
(pecan-env) luckylau@luckylau-Ubuntu:~/pecan-env$ pecan create test_project
(pecan-env) luckylau@luckylau-Ubuntu:~/pecan-env$ tree test_project/
test_project/
├── config.py
├── MANIFEST.in
├── public           #一些静态文件包括CSS,JS,images,为你的开发服务
│   ├── css
│   │   └── style.css
│   └── images
│       └── logo.png
├── setup.cfg
├── setup.py
└── test_project      #基于MVC模型生成的结构
    ├── app.py        #决定应用是如何创造的,这个文件必须包含set_app()并返回WSGI应用对象,一般情况下就用原生的,除非不能满足你定制的应用。
    ├── controllers   #控制层实现
    │   ├── __init__.py
    │   ├── __init__.pyc
    │   ├── root.py
    │   └── root.pyc
    ├── __init__.py
    ├── __init__.pyc
    ├── model          #模型实现
    │   ├── __init__.py #在这里可以加入与database交互,定义表和ORM等
    │   └── __init__.pyc
    ├── templates      #模板实现
    │   ├── error.html
    │   ├── index.html
    │   └── layout.html
    └── tests          #单元测试
        ├── config.py 
        ├── __init__.py
        ├── test_functional.py
        ├── test_units.py
        └── test_units.pyc
8 directories, 23 files

我们通过实际操作中补充pecan相关知识点。项目托管到github:

https://github.com/Luckylau/python-web-frame
http://luckylau.tech/2017/03/01/python的pecan框架使用/

3、WSGI

http://python.jobbole.com/88653/
WSGI:全称是Web Server Gateway Interface,WSGI不是服务器,python模块,框架,API或者任何软件,只是一种规范,描述web server如何与web application通信的规范。server和application的规范在PEP 3333中有具体描述。要实现WSGI协议,必须同时实现web server和web application,当前运行在WSGI协议之上的web框架有Torando,Flask,Django

web应用的本质
1)浏览器发送一个HTTP请求
2)服务器收到请求,生成一个HTML文档
3)服务器把HTML文档作为HTTP响应的body发给浏览器
4)浏览器收到HTTP响应,从HTTP Body取出HTML文档并显示

上面的web应用过程,如果由我们自己来实现是复杂的,接收HTTP请求,解析HTTP请求,响应HTTP请求等。通常这些操作都由WSGI服务器来完成,WSGI(Web Server Gateway Interface)定义了WSGI服务器执行的接口,我们只需要编写服务WSGI规范的接口,然后由WSGI服务器来执行,就可以了。

WSGI接口编写示例

def application(environ,satrt_response):
    start_response('200 OK',[('Content-Type','text/html')])
    return '<h1>Hello,web!</h1>'

上面的application()函数就是符合WSGI标准的一个HTTP处理函数
参数说明:
environ:包含HTTP请求信息的dict对象
satrt_response:发送HTTP响应的函数
函数说明:
start_response(‘200 OK’, [(‘Content-Type’, ‘text/html’)])
发送HTTP响应的Header,Header只能发送一次,意思是start_response函数只能执行一次。
'200 OK’是HTTP响应码参数,[(‘Content-Type’, ‘text/html’)]表示HTTP Header,函数的返回值作为HTTP响应body发送给服务器。

4、 为什么用pecan

Pecan是一个路由对象分发的oython web框架。本质上可以将url通过分割为每一部分,然后对每一部分查找对应处理该URL部分的处理类,处理后,继续交给后面部分的URL处理,直到所有URL部分都被处理后,调用最后分割的URL对应的处理函数处理。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值