今天放假在家,外面又在下雨,闲来无事,写了个简单的模板引擎,其实也不算什么模板,只是把嵌在html里的python代码解释成嵌入在python里的html代码,仅此而已,代码也很简陋,纯粹个人娱乐
以下是示例代码:
from web.render import SimpleHTMLRender
from socketserver import ThreadingMixIn
from wsgiref.simple_server import WSGIServer
render = SimpleHTMLRender("F:/test/")
class ThreadingWSGIServer(ThreadingMixIn,WSGIServer):
pass
def application(env,start_response):
start_response("200 OK",[("Content-Type","text/html;charset=UTF-8")])
return render.hello(name="phyeas")
if __name__=="__main__":
from wsgiref.simple_server import make_server
httpd=make_server('',8080,application,server_class=ThreadingWSGIServer)
print("Http Service on port 8080....")
httpd.handle_request()
需要在F:/test目录下放置一个叫hello.html的文件。文件内容是:
<%def render(name):%>
Hello <%=name%>!
当然了,路径和文件名可以自定
输出结果就是 Hello phyeas!(当然可以改成你的名字啦)
运行后将生成一个hello.py文件和hello.pyc文件,前面是由SimpleHTMLRender生成的,后面是导入到程序里python自动编译的结果
核心代码:
def render(self, fpath, *args, **kwargs):
if os.path.exists(fpath[0:-5]+".py") or os.path.exists(fpath[0:-5]+".pyc"):
if os.path.dirname(fpath) not in sys.path:
sys.path.append(os.path.dirname(fpath))
py_f_path=fpath[0:-5]+".py" if os.path.exists(fpath[0:-5]+".py") else fpath[0:-5]+".pyc"
create_new_file=False
if os.stat(fpath).st_mtime>os.stat(py_f_path).st_ctime:#如果html文件的修改时间大于python文件的创建时间,就重新创建
with open(fpath,encoding="UTF-8") as f:
parseHTML2Py(f)
create_new_file=True
fname=os.path.split(fpath)[1][:-5]#获取文件名
import_statement="import "+fname
if import_statement not in imports or create_new_file:#创建新文件时重新import
exec(import_statement)#导入模块
if fname+"_real_func" not in self.render_functions or create_new_file:#创建新文件时重新绑定函数
self.render_functions[fname+"_real_func"]=eval(fname+".render")#获取出函数绑定
return getattr(self,fname+"_real_func")(*args,**kwargs)
else:
with open(fpath,encoding="UTF-8") as f:
parseHTML2Py(f)
return self.render(fpath,*args,**kwargs)
分享到:
- 2009-04-06 21:14
- 浏览 1379
- 评论(2)
- 论坛回复 / 浏览 (2 / 2563)
- 查看更多
相关推荐
首先,fondat_core是Python生态中的一个重要组成部分,它的版本号3.0b37表明这是一个beta版本,意味着它可能包含一些实验性功能,并且开发者仍在进行持续优化。"py3-none-any"这部分表示该库适用于任何架构的Python ...
`Tencentcloud-sdk-python`是腾讯云为Python开发者提供的SDK,它允许用户在Python环境中无缝地访问腾讯云的各类服务,如计算、存储、数据库、人工智能等。通过这个库,开发者可以轻松地构建和管理云应用,实现对腾讯...
在IT行业中,Python作为一门强大且易用的编程语言,广泛应用于各种场景,包括但不限于数据分析、机器学习、Web开发以及云服务接口调用等。对于腾讯云服务的开发者而言,`tencentcloud-sdk-python`是一个不可或缺的...
5. **异常处理**:提供错误处理机制,使得在处理网络问题或服务端异常时能够优雅地恢复。 6. **安全性**:可能包含安全认证机制,确保通信过程中的数据安全。 使用tencentcloud-sdk-python-memcached-3.0.556,...
在实际项目中,`tencentcloud-sdk-python-asr`可以与其他Python库结合使用,如`pydub`处理音频文件,`Flask`或`Django`构建Web应用,或`pandas`处理识别结果。通过这样的集成,可以构建出完整的语音识别解决方案。 ...
- 在处理大量并发请求时,注意函数的并发限制,避免超出配额导致请求失败。 - 函数的冷启动时间需要注意,尽量减少不必要的资源消耗,优化函数的启动速度。 - 对于长时间运行的任务,考虑使用定时任务或者消息队列来...
安装TencentCloud SDK for Python TBP 3.0.260非常简单,可以通过pip命令进行: ```bash pip install tencentcloud-sdk-python-tbp-3.0.260 ``` 安装完成后,开发者可以在Python代码中导入所需的模块,例如: ```...
在实际项目中,开发者可以通过安装`tencentcloud-sdk-python-cwp-3.0.398`压缩包,然后导入库,调用相应的API接口来实现上述功能。通常,首先需要进行身份认证,然后就可以进行资源操作。例如,下面是一个简单的示例...
在给定的资源“tencentcloud-sdk-python-sts-3.0.544.tar.gz”中,我们关注的是一个Python库,这个库专门用于与腾讯云(Tencent Cloud)进行交互,特别是涉及安全临时访问凭证(Security Token Service,简称STS)的...
在“tencentcloud-sdk-python-sts-3.0.312.tar.gz”压缩包中,包含了该版本的SDK的所有源代码和必要的文档。解压后,开发者可以查看并了解其内部结构,进一步学习如何集成到自己的项目中。通常,这个库会包含以下...
在后端开发中,Python常用于构建Web应用、API服务、数据处理和自动化脚本等。 4. **后端开发**: 后端开发主要关注服务器端的逻辑处理和数据库操作。tccli作为后端开发的工具,可以帮助开发者便捷地与云服务接口进行...
6. **服务器端编程**:虽然大部分交互在前端,但服务器端也扮演着重要角色,如处理请求、存储数据等。开发者可能需要掌握如PHP、Python或.NET等后端编程语言,以及HTTP协议和RESTful API设计。 7. **安全考虑**:在...
标题中的“mypy-boto3-xray-1.13.3.0.tar.gz”是一个Python库的压缩包,主要用于增强Boto3库的类型检查功能,并与AWS X-Ray服务集成。这个压缩包包含了版本号为1.13.3.0的库代码。 首先,我们来了解一下`mypy`。...
在Python编程环境中,PyPI(Python Package Index)是官方的第三方库分发平台,开发者可以在这里发布和下载各种Python软件包。资源"tencentcloud-sdk-python-cws-3.0.494.tar.gz"是从PyPI官网获取的,它是一个用于...
在后端开发中,Python库如Django和Flask是流行的Web框架,它们提供模板引擎、路由系统、数据库集成等功能,方便快速构建Web应用。而像SQLAlchemy这样的ORM(对象关系映射)库,可以简化数据库操作。对于API开发,...
在给定的标题"Python库 | py21-1.3.0-py3-none-any.whl"中,"py21"可能是库的名称,而"1.3.0"代表这个版本是该库的第1.3.0次更新,"py3"表明它是针对Python 3.x编写的,"none-any"则意味着它不依赖于特定的平台或ABI...
这个压缩包“tencentcloud-sdk-python-btoe-3.0.517.tar.gz”是从PyPI官网上获取的,专门针对腾讯云服务的Python SDK,用于在Python环境中方便地调用腾讯云的BTOE(Business to Everything)服务。 **Python 开发...
安装这款SDK非常简单,首先解压下载的tar.gz文件,然后在Python环境中使用pip进行安装,命令如下: ```bash pip install tencentcloud-sdk-python-apcas-3.0.383 ``` 在使用SDK之前,需要配置好腾讯云的密钥...
在现代Web应用和微服务架构中,异步处理变得越来越重要。Fondat-AWS利用Python的asyncio库,使得开发者可以并行执行多个AWS操作,极大地提高了程序的运行效率。这对于处理大量并发请求或执行耗时的云操作时尤为关键...
在这个“Python-一个自己写的python3的简单到发指的爬虫”的项目中,我们将深入探讨Python3的基本爬虫实现,以及涉及到的相关知识点。 首先,我们要了解Python3爬虫的基础,这通常包括HTTP/HTTPS协议、网络请求库...