- 浏览: 2655126 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
django自带的模板用着不爽,准备替换成python Mako,这也是豆瓣使用的模板语言。
1. 环境准备
直接使用pip,如果不知道什么是pip,会死的很惨
sudo pip install Mako
sudo pip install django-mako
2. 一个简单的例子
和java的模板系统大同小异,加上context:
这里render方法会自动创建Context对象,也可以自己创建Context:
3. 基于文件的Templates
上面的例子中,Template是通过字符串的方式构建的,下面将介绍通过文件:
4. 语法
a. 表达式,和jsp,velocity很像:
但比velocity智能,数学运算很方便有木有:
${pow(x,2) + pow(y,2)}
the contents within the ${} tag are evaluated by Python directly, so full expressions are OK.
还有比java先进的,看看这个:
| 后面这个u是什么意思?
Mako 内置了多个escaping filter ,包括 HTML, URL, XML escaping,trim(),这些filter可以通过| 后面跟表达式来表示。
u : URL escaping, provided by urllib.quote_plus(string.encode('utf-8'))
h : HTML escaping, provided by markupsafe.escape(string)
x : XML escaping
trim : whitespace trimming, provided by string.strip()
entity : produces HTML entity references for applicable strings, derived from htmlentitydefs
unicode (str on Python 3): produces a Python unicode string (this function is applied by default)
decode.<some encoding> : decode input into a Python unicode with the specified encoding
n : disable all default filtering; only filters specified in the local expression tag will be applied.
多个filter通过逗号间隔:
上面这段code将被解析成: <tag>some value</tag> 更多: http://docs.makotemplates.org/en/latest/filtering.html
b. 流程控制
c. python block:
更多参考:http://docs.makotemplates.org/en/latest/syntax.html
5. 最后说说和django集成问题
1)在你django项目的settings.py中的MIDDLEWARE_CLASSES里增加一项djangomako.middleware.MakoMiddleware例:
添加django方法,例:
启动你的django项目,浏览器访问一下http://yourhostname/hello,看下是不是看到返回的hello sand!
http://www.sandzhang.com/blog/2010/04/03/install-mako-templates-and-plugin-for-django/
1. 环境准备
直接使用pip,如果不知道什么是pip,会死的很惨
sudo pip install Mako
sudo pip install django-mako
2. 一个简单的例子
from mako.template import Template mytemplate = Template("hello world!") print mytemplate.render()
和java的模板系统大同小异,加上context:
from mako.template import Template mytemplate = Template("hello, ${name}!") print mytemplate.render(name="jack")
这里render方法会自动创建Context对象,也可以自己创建Context:
from mako.template import Template from mako.runtime import Context from StringIO import StringIO mytemplate = Template("hello, ${name}!") buf = StringIO() ctx = Context(buf, name="jack") mytemplate.render_context(ctx) print buf.getvalue()
3. 基于文件的Templates
上面的例子中,Template是通过字符串的方式构建的,下面将介绍通过文件:
from mako.template import Template mytemplate = Template(filename='/docs/mytmpl.txt') print mytemplate.render()
4. 语法
a. 表达式,和jsp,velocity很像:
this is x: ${x}
但比velocity智能,数学运算很方便有木有:
${pow(x,2) + pow(y,2)}
the contents within the ${} tag are evaluated by Python directly, so full expressions are OK.
还有比java先进的,看看这个:
${"this is some text" | u}
| 后面这个u是什么意思?
Mako 内置了多个escaping filter ,包括 HTML, URL, XML escaping,trim(),这些filter可以通过| 后面跟表达式来表示。
u : URL escaping, provided by urllib.quote_plus(string.encode('utf-8'))
h : HTML escaping, provided by markupsafe.escape(string)
x : XML escaping
trim : whitespace trimming, provided by string.strip()
entity : produces HTML entity references for applicable strings, derived from htmlentitydefs
unicode (str on Python 3): produces a Python unicode string (this function is applied by default)
decode.<some encoding> : decode input into a Python unicode with the specified encoding
n : disable all default filtering; only filters specified in the local expression tag will be applied.
多个filter通过逗号间隔:
${" <tag>some value</tag> " | h,trim}
上面这段code将被解析成: <tag>some value</tag> 更多: http://docs.makotemplates.org/en/latest/filtering.html
b. 流程控制
% if x==5: this is some output % endif % for a in ['one', 'two', 'three', 'four', 'five']: % if a[0] == 't': its two or three % elif a[0] == 'f': four/five % else: one % endif % endfor
c. python block:
this is a template <% x = db.get_resource('foo') y = [z.element for z in x if x.frobnizzle==5] %> % for elem in y: element: ${elem} % endfor
更多参考:http://docs.makotemplates.org/en/latest/syntax.html
5. 最后说说和django集成问题
1)在你django项目的settings.py中的MIDDLEWARE_CLASSES里增加一项djangomako.middleware.MakoMiddleware例:
MIDDLEWARE_CLASSES = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'djangomako.middleware.MakoMiddleware', )
添加django方法,例:
from djangomako.shortcuts import render_to_response def hello_view(request): return render_to_response('hello.html', {'name':'sand'})
启动你的django项目,浏览器访问一下http://yourhostname/hello,看下是不是看到返回的hello sand!
http://www.sandzhang.com/blog/2010/04/03/install-mako-templates-and-plugin-for-django/
发表评论
-
django 处理unicode编码
2013-04-28 22:18 2822django.util.encoding.py impor ... -
django lazy user实现
2013-04-26 15:48 1216代码如下: from people.service ... -
django db models探索
2013-03-24 16:04 1795一、django db models结构 django ... -
django + sqlalchemy pool 测试
2013-03-15 22:59 13801.修改gevent /duitang/dist/sys ... -
django template探索
2013-01-04 18:18 1244由于需要解决django template问题,研究了djan ... -
django db backends探索
2012-12-29 18:20 2472由于需要解决django db长连接的问题,最近看了看djan ... -
MySQL Connection Pooling with Django and SQLAlchemy
2012-12-28 21:54 0Here's a quick and dirty recipe ... -
Launching a High Performance Django Site
2012-12-28 21:39 1069Are the brakes on your Django a ... -
django 性能优化
2012-12-28 17:24 2119django默认的一些系统性能低下,无法支撑大流量请求,一些优 ... -
让Django支持数据库长连接
2012-12-28 17:05 1804原文:http://www.cnblogs.com ... -
django 的BaseMemcachedCache线程安全问题
2012-10-21 15:11 1120注意,django.core.cache.backends.m ... -
django request 获取请求的URL
2012-10-17 17:17 22081request.get_host() 获取请求地址 ... -
django user model
2012-09-12 22:01 937http://stackoverflow.com/questi ... -
python uwsgi
2012-07-30 17:21 0之前的文章已经提到了 django+fastcgi的运行并 ... -
在生产系统使用Tornado WebServer来代替FastCGI加速你的Django应用
2012-07-30 17:19 5原文:http://www.cnblogs.com/Alexa ... -
python web.py
2012-07-30 17:04 939使用web.py能快速启动一个web服务。 # -*- c ... -
浅析 Django runserver 的 autoreload 功能
2012-07-30 16:53 5144浅析 Django runserver 的 auto ... -
django auth_user.get_profile
2012-07-24 12:29 2620django 对 auth_user 提供了扩展get_pro ... -
django + postfix 搭建邮件服务
2012-07-23 14:48 1391email 配置: SERVER_EMAIL = &q ... -
django 中文问题
2012-07-17 16:45 1596好像每个国外的开源框架都会遇到中文问题,今天又被django ...
相关推荐
5. **前端交互**:Python的Ajax库如jQuery和requests库,使得前后端交互更加流畅,实现页面无刷新更新,提升用户体验。 6. **爬虫与数据抓取**:Python的BeautifulSoup、Scrapy等库使得数据抓取变得容易,对于Web ...
"Python购物商城管理系统"就是利用Python编程语言构建的一个简单版的电子商务平台。这个系统可能包括用户管理、商品展示、购物车、订单处理等基本功能,为用户提供了一个便捷的在线购物体验。 1. **用户模块** - ...
版本2.0.3是这个库的一个稳定版本,包含了一系列改进和修复,以增强其功能和用户体验。 在Python开发中,库如`jam.py`扮演着至关重要的角色,它们提供了丰富的预定义函数和模块,使得开发者能够避免重复造轮子,...
总的来说,"Python-Mail-Merge-Project"是一个综合性的学习体验,涵盖了数据处理、模板引擎应用、电子邮件通信等多个Python编程领域的核心概念。通过这个项目,你将能够构建出一个功能完善的邮件合并系统,从而提升...
5. **模板与视图**:基于 web2py 的 Mako 模板引擎,easystore 提供了一系列预定义的视图,帮助开发者快速构建商店页面,如产品展示、购物车、结账等页面。 6. **库存管理**:对于商品库存的跟踪和管理,easystore ...
Bottle是一个轻量级的Python Web服务器和框架,适用于开发简单的单进程Web应用。它的核心特性包括路由、模板渲染、HTTP请求处理等。在这个项目中,Bottle用于接收和响应HTTP请求,处理数据并渲染仪表盘页面。 2. *...
总的来说,`JinjaForm`是`Jinja2`的一个有力补充,它使得在Python Web应用中处理表单变得简单高效。无论是新手还是经验丰富的开发者,都可以从中受益,提高开发效率。通过下载并安装`jinjaform-0.5.1-py2.py3-none-...
在WebPy中,视图通常是一个Python函数,该函数返回HTML模板,这些模板可以使用内置的模板引擎或第三方模板库如Mako或Jinja2来创建。 3. **控制器(Controller)**:控制器是模型和视图之间的桥梁,处理HTTP请求并调用...
Tornado Battery的出现,是为了进一步优化Tornado的使用体验,为开发者提供更多的便利性。 首先,我们来了解Tornado Battery的核心特性: 1. **路由管理**:Tornado Battery提供了更高级的路由系统,支持动态路由...
- **兼容多种模板**:除了内置模板引擎外,还支持 Mako、Jinja2 和 Cheetah 等流行模板引擎的集成。 - **动态内容生成**:用户可以轻松地在模板中插入动态数据,从而生成 HTML 页面。 ##### 2.3 实用工具 ...
Python提供了多种数据库适配器,如SQLAlchemy和psycopg2,使得与数据库的操作变得简单。 4. RESTful API:现代Web应用往往需要提供REST(Representational State Transfer)风格的API,以实现前后端分离或与其他...
10. **数据分析与推荐系统**:Python的数据分析库如Pandas、NumPy和SciPy可用于处理大量业务数据,而机器学习库如Scikit-learn、TensorFlow或PyTorch可能被用于构建个性化推荐系统,提高用户体验和转化率。...
为了使应用运行起来,我们需要将所有代码组织成一个可执行的Python程序,然后使用内置的服务器模块(如Bottle自带的wsgiref简单服务器)启动应用。这一步通常在`weather-app-main.py`这样的主文件中完成。 总的来说...
5. **用户界面**:为了提供友好的用户体验,开发者可能会利用Bootstrap或其他前端框架来构建响应式布局和表单元素,便于用户输入产品信息。 6. **数据库集成**:如果网站需要保存用户的标签设计或生成的历史记录,...
"simple-blog-engine" 是一个基于 Python 的简单博客引擎项目,旨在提供一个轻量级、易于理解和自定义的平台,用于创建个人或小型团队的博客系统。这个项目可能包含了一个基本的后端框架、数据库模型、前端模板以及...
4. **模板引擎**:对于用户界面,Python的Jinja2或Mako可以用来创建动态HTML页面,结合CSS和JavaScript提供交互式体验。 5. **认证与授权**:考虑到网络服务,项目可能需要用户身份验证和权限管理。Python有如Flask...
总的来说,Manos是一个面向Python开发者的小巧且灵活的Web框架,它的目标是提供一种直接、高效的开发体验,而不是强制使用一套完整的解决方案。如果你是一个喜欢对Web应用有完全控制权的开发者,或者正在寻找一个...
【fbdemo:基本烧瓶服务器】是一个基于Python开发的简单Web服务器应用,它使用了微型Web框架Bottle。Bottle是一个轻量级、快速且易于使用的框架,适合开发小型到中型的Web应用程序。在深入理解fbdemo之前,我们先来...
在Bottle中,你可以使用简单的装饰器来定义路由规则。例如,`@get('/blog')` 将GET请求的/blog路径绑定到一个处理函数。 模板渲染是创建动态HTML页面的关键。Bottle支持多种模板引擎,如Mako和Jinja2,但默认使用的...
"瓶项目"是一个基于Python的轻量级Web框架,它以简洁、高效为设计原则,适合快速开发小型或中型的Web应用。在本项目中,我们主要关注HTML标签的使用,这在构建Web页面时至关重要。HTML(HyperText Markup Language)...