Mole详细说明文档 - Oejia 技术栈,企业方案分享、Odoo顾问
Oejia 技术栈
主页
分享
微信模块
索引
关于
订阅
编辑器
登录
Mole详细说明文档
Oejia
on 2014-12-22 13:27:09
[TOC] ###最简单的示例 ```python @route('/') def index(): return "hello mole!" if __name__ == "__main__": run(host='127.0.0.1', port=8080) ``` 可以看出,mole中讲究的是简洁、直接,不做过多封装,尽量保持Python语言的原生特性 下面是mole中一些重要模块的介绍,由于mole已经在代码上做了比较清晰的模块化,所以建议在需要知道某个模块有哪些 API 的时候直接参看对应的类的源码,类源码和模块的对应关系参照 [附表](#jump) ###模块解析 ####路由器route #####基础路由 ```python @route('/') @route('/index.html') def index(): return '
Go to Hello World Page
' ``` 以装饰器的方式声明url路由,支持多url批量声明 #####动态路由 ```python @route('/hello/:name') def hello(name = 'World'): return 'Hello {}!'.format(name) ``` 简洁的url模式匹配基本满足大部分声明场景 动态路由典型的使用例子——**静态资源路由** ```python @route('/static/:filename') def server_static(filename): return static_file(filename, root='/path/to/your/static/files') ``` 以上即声明了一个web的静态资源url的映射,需要用到js,css等静态资源的站点均可以这样使用 #### HTTP请求(request对象) ##### 请求方法(Request Methods) ```python @route('/test/', method=["GET","POST"]) @dbop def test(): return 'ok' ``` ##### HTTP头 ```python @route('js_ajax') def is_ajax(): if request.header.get('X-Requested-With') == 'XMLHttpRequest': return 'This is an AJAX request' else: return 'This is a normal request' ``` ##### URL参数 ```python @route('/forum') def display_forum(): forum_id = request.GET.get('id') page = request.GET.get('page','1') return 'Forum ID: {} ( Page: {} )'.format(forum_id, page) ``` ##### Form参数 ```python @route('/upload', method = 'POST') def do_upload(): name = request.forms.get('name') data = request.files.get('data') if name and data.file: raw = data.file.read() filename = data.filename return "Hello {}! You uploaded {} ( {} bytes ).".format(name, filename, len(raw)) return "You missed a field" ``` ##### WSGI(请求上下文信息) ```python route('/my_ip') def show_ip(): ip = request.environ.get('REMOTE_ADDR') return 'Your IP is : {}'.format(ip) ``` #### HTTP响应(response对象) #####设置响应头 ```python @route('/wiki/page') def wiki(page): response.set_header('Content-Language', 'en') response.set_header('Set-Cookie','name=value') ``` ##### Cookies ```python @route('/visit') def visit(): if request.get_cookie("visited"): return "Welcome back! Nice to see you again" else: response.set_cookie("visited", "yes") return "Hello there! Nice to meet you" ``` #### 模板(Templates) ```python from mole.template import template @route('/hello/:name'): def hello(name = 'World') return template('hello.tpl', name = name) ``` ####
附:源码和模块对应关系 > * route.py ——URL路由 > * request.py ——请求 > * response.py ——响应 > * template.py ——模板引擎 > * cookie.py ——cookie模块 > * sessions.py ——会话 > * server.py ——Web容器适配 > * mole.py ——Mole app整体类(WSGI APP)
Information
Mole详细说明文档
http://www.oejia.net/blog/2014/12/22/mole_detail.html
http://www.oejia.net/raw/2014/12/22/mole_detail.md
Oejia
on 2014-12-22 13:27:09
Category
后端HTTP
Tag
Python
Web
Http
Related
2020-03-15 :
Odoo 扫码及授权免密登录模块使用说明
2019-11-14 :
Odoo 国内发票 OCR 导入功能介绍
2019-03-25 :
Odoo 基于企业微信实现的通用审批流功能的自助配置及使用说明
2018-11-14 :
基于企业微信的多功能微信客服系统,多终端回复,无需专人值守电脑
2018-08-31 :
Odoo 中的 domain 的解析及各种使用例子
2018-01-23 :
Odoo 视图XML常用属性项说明
2017-08-10 :
DjangoX App 配置和菜单组设置介绍
2016-01-19 :
Odoo 新 API 的使用说明
2016-01-17 :
EXTJS 中Ajax 应用示例
2014-12-01 :
begin
官方公众号
关注公众号实时咨询我们
分类
Odoo (80)
DjangoX (11)
后端HTTP (7)
YouMd (4)
移动开发 (4)
Django (4)
公告说明 (2)
JS (2)
Python (1)
前端 (1)
Nginx (1)
桌面UI (1)
January 2021
Sun
Mon
Tue
Wed
Thu
Fri
Sat
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
About This Entry
MoCrud详细说明文档
MoSys详细说明文档
About This Blog
main index
to find recently
archives
to find all
标签
微信模块
小程序商城
Python
Web
Http
Cordova
客服系统
微信客服系统
HTML5
微信客服
Markdown
解析
DjangoX
微信模块发布记录
客服工单系统
ExtJS
示例
Excel
JS
服系统
新年
PyQT
YouPBX
扩展开发
最近发布
如何实现 Odoo 数据每天备份到本地存储
微信模块 Oejia_wx v0.6.3 发布,多项兼容优化,即将全面适配 Odoo14
Odoo 小程序商城模块 Oejia_weshop v0.2.2 发布,全面支持多公司销售机制
OE商城积分模块
Odoo14 相对 Odoo13 依赖库的变化
Oejia 七月模块产品动态之OE商城
小程序商城模块 Oejia_weshop v0.2.1 发布,各种营销活动支持打通线上线下业务
基于企业微信官方审批应用实现的Odoo通用审批功能
OE小程序商城订阅消息通知使用说明
Odoo 基于企业微信的OA审批移动化办公
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子