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
2023-03-07 :
Odoo 更灵活的对账、付款及客户余额的介绍
2023-01-12 :
Odoo16 SyntaxError: Failed to execute 'querySelectorAll' on 'Element': 'footer:not(field footer)' is not a valid selector
2022-05-15 :
远程登录提示“找不到匹配的keyexchange算法”
2021-05-22 :
Odoo 微信模块常见问题处理
2020-03-26 :
OE商城拼团、砍价模块
2019-12-02 :
OE商城分销模块的使用说明
2016-12-29 :
Odoo 开发中 wizard 向导页的使用方法
2016-08-01 :
Odoo 模型定义详解
2016-03-19 :
从 odoo 源码看 odoo 8.0 到 9.0 的变化
2014-12-15 :
Cordova设置应用图标icon和启动页面SplashScreen
March 2023
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
分类
Odoo (123)
DjangoX (13)
后端HTTP (7)
YouMd (4)
移动开发 (4)
Django (3)
前端 (2)
JS (2)
公告说明 (2)
Python (1)
Nginx (1)
桌面UI (1)
异常处理 (1)
官方公众号
关注公众号实时咨询我们
About This Entry
MoCrud详细说明文档
MoSys详细说明文档
About This Blog
main index
to find recently
archives
to find all
标签
微信模块发布记录
微信模块
小程序商城
Python
Web
Http
客服系统
OE商城
Cordova
审批OA
HTML5
Markdown
解析
DjangoX
ExtJS
示例
Excel
JS
新年
PyQT
扩展开发
YouPBX
服系统
最近发布
Odoo生产环境需要注意或修改的一些关键配置项
Odoo 更灵活的对账、付款及客户余额的介绍
Odoo16 SyntaxError: Failed to execute 'querySelectorAll' on 'Element': 'footer:not(field footer)' is not a valid selector
企业微信错误码:60020 的处理
在 Odoo 中使用 WebSocket 并兼容Odoo的Session会话识别
Odoo 让 server action 显示到指定的视图上
Odoo 增加树形列表视图的支持
Odoo 16 正式发布时间
Odoo 企业微信之日历、日程的同步
钉钉消息通知及审批功能的使用说明
Friend Links
Oejia技术梦博客分享
YouMd,爱上MarkDown
Mole轻量级wsgi架子