`
duantonghai
  • 浏览: 20351 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

python web.py研究2

 
阅读更多
web.py没有自己的模板引擎,需要引入别人的,他有一个类 web.contrib.template  里面做了些对接第三方模板的支持

比如要使用jinja模板

templates_path=os.path.join(app_root,'templates').replace("\\","/")

#配置模板引擎
render = render_jinja(
        templates_path,   # 设置模板路径.
        encoding = 'utf-8', # 编码.
    )

class home:        
    def GET(self):
        return render.home({})



源代码:
class render_jinja:
    """Rendering interface to Jinja2 Templates
    
    Example:

        render= render_jinja('templates')
        render.hello(name='jinja2')
    """
    def __init__(self, *a, **kwargs):
        extensions = kwargs.pop('extensions', [])
        globals = kwargs.pop('globals', {})

        from jinja2 import Environment,FileSystemLoader
        self._lookup = Environment(loader=FileSystemLoader(*a, **kwargs), extensions=extensions)
        self._lookup.globals.update(globals)
        
    def __getattr__(self, name):
        # Assuming all templates end with .html
        path = name + '.html'
        t = self._lookup.get_template(path)
        return t.render


先初始化jinja,然后在 render.home的时候调用 __getattr__(self, name) 方法,在里面根据home名字去查找名字为home的模板文件,最后返回渲染



分享到:
评论

相关推荐

    python-web.py包

    首先,你需要访问Web.py的官方网站或者通过GitHub等代码托管平台找到web.py的源码压缩包,这里显示的文件名是"webpy-master",这意味着你已经下载了源码的主分支。下载后,将其解压缩到本地的一个目录,例如`C:\temp...

    Python web.py 应用源码

    【Python web.py 框架详解】 web.py 是一个轻量级且强大的Python Web框架,它的设计理念是简洁、直观,并且易于上手。这个框架旨在让开发者能够快速地构建Web应用,同时保持代码的清晰性和可维护性。web.py 的核心...

    web.py中文版用户手册

    web.py 是一个轻量级Python web框架,它简单而且功能强大。web.py是一个开源项目。该框架由美国作家、Reddit联合创始人、RSS规格合作创造者、著名计算机黑客Aaron Swartz开发。web.py目前已被很多家大型网站所使用。

    py2+web.py.rar

    【标题】"py2+web.py.rar" 指的是一个使用Python 2版本和Web.py框架构建的Web应用程序的压缩文件。Web.py是Python语言中的一个轻量级Web开发框架,它允许开发者快速地创建功能丰富的Web服务。在Windows Server 2008 ...

    web.py中文教程_脚本之家.docx

    web.py 是一个轻量级Python web框架,它简单而且功能强大。web.py是一个开源项目。该框架由美国作家、Reddit联合创始人、RSS规格合作创造者、著名计算机黑客Aaron Swartz开发。web.py目前已被很多家大型网站所使用。...

    web.py针对python3.7调整版

    1. **类型注解的添加**:为了与Python 3.7的类型系统兼容,`webpy-py3`可能在`web.py`的源码中添加了类型注解,以消除类型检查工具的警告或错误。 2. **语法更新**:可能更新了与新Python 3.7语法不兼容的部分,...

    web.py是一个小巧灵活的Python框架,它简单而且功能强大。

    `web.py` 是一个针对Python编程语言设计的轻量级Web框架,它的核心设计理念是简洁和高效。作为一个小巧而灵活的框架,`web.py` 能够帮助开发者快速构建Web应用程序,同时保持代码的清晰性和可维护性。在本文中,我们...

    web.py flup

    web.py是一个轻量级的Python Web框架,设计简洁且易于上手。它提供了MVC(模型-视图-控制器)架构模式,让开发者能够快速地开发出Web应用。web.py的核心概念包括URL路由、请求处理、模板渲染等。 1. URL路由:web....

    利用web.py写的一个Hello World的demo

    一个用web.py写的Hello World,主要是入门感受下pthon而已。 使用: 1、用终端CD到web.py,执行:python setup.py install,在Linux 等系统下,需要root 的权限,可以...2、CD到项目目录,执行python index.py,OK啦。

    简单而直接的Python web 框架:web.py

    webpy实战 一个简单的web.py应用示例,包括一个首页和一个显示用户欢迎消息的页面: ```python import web urls = ( '/', 'Index', '/hello/(.*)', 'Hello' ) class Index: def GET(self): return "Welcome...

    web.py官方文档

    Web.py是一个基于Python的Web开发框架,为开发人员提供了一个简洁的API来构建Web应用程序。从提供的文件内容来看,这部分文档涵盖了几个关键的知识点,包括用户输入的访问、数据库的访问、模板的使用以及Web.py应用...

    python web.py开发httpserver解决跨域问题实例解析

    在本文中,我们将深入探讨如何使用Python的web.py框架开发HTTP服务器并解决跨域问题。跨域问题通常在Web开发中出现,尤其是当前端应用(如浏览器中的JavaScript)尝试从一个源向另一个源发送请求时。由于浏览器的...

    简单而直接的Python web 框架:web.py.docx

    web.py是一个轻量级的Python Web框架,它的设计哲学是简洁而直接,适合初学者和有经验的开发者。由于其开源性质,web.py可以在任何项目中自由使用,不受任何限制。虽然小巧,但web.py功能强大,能够处理复杂的Web...

    Python框架web.py.zip

    webpy的设计理念力求精简(Keep it simple and powerful),源码很简短,只提供一个框架所必须的东西,不依赖大量的第三方模块,它没有URL路由、没有模板也没有数据库的访问。这样的优点是,框架给开发带来的限制少...

    毕业设计:基于 Python web.py Redis的博客系统.zip

    【标题】基于 Python web.py Redis 的博客系统是一个典型的 Web 应用开发实例,适用于计算机科学与技术专业的毕业生进行设计和实现。web.py 是一个轻量级的 Python Web 框架,而 Redis 是一个高性能的键值存储系统,...

    web.py中文教程

    `web.py` 是一个轻量级、简洁且灵活的 Python Web 开发框架,它提供了一种快速构建 Web 应用程序的方法。本教程旨在为初学者提供关于 web.py 的详细指导,涵盖从基础应用到高级特性的全方位介绍。 ## 基本应用 1. ...

    PIP20.0.2安装包 pip-20.0.2-py2.py3-none-any.whl

    标题中的"PIP20.0.2安装包 pip-20.0.2-py2.py3-none-any.whl"指的是Python的包管理工具pip的一个特定版本,即20.0.2。这个安装包是用wheel(whl)格式提供的,这是一种预编译的Python软件包格式,用于简化Python库的...

    python3.x中安装web.py步骤方法

    - 在安装Web.py或其他第三方库时,需要注意Python 2.x和Python 3.x之间的一些关键差异。例如,`print`语句在Python 2.x中是语句,在Python 3.x中则是函数。确保使用正确的语法以避免错误。 #### 六、总结 通过上述...

Global site tag (gtag.js) - Google Analytics