phppython混合开发_如何让python嵌入html实现类似php的快速开发,十分有价值

1.在一个文件夹名为www.html3.com的web项目来实现,首先到nginx的配置文件nginx.conf做如下配置

python和html混合编写的文件,我以文件后缀为.phtml,通过服务器配置让它重定向到 /rewrite/

2.进去项目目录下的static/html/ 编写一个1.phtml 内容如下(内容是随便写的,只是为了测试)

#define a variable

str_var = "hello world"

############# divide ################

import time

if True:

str_var2 = str(time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))

else:

str_var2 = "nothing"

%>

phtml

start

I say:

I say:

end

注意:博主本人的想法是在html文档前放一对分隔符且只是一个,专门用于处理数据与逻辑,而后面的分隔符也就是嵌入到html文档内的那些分隔符,里面只放置一个变量名,用于输出变量值,因为时间有限,只是简简单单实现,请谅解!

PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取

note.youdao.com/noteshare?id=2dce86d0c2588ae7c0a88bee34324d76

3.我该项目是flask项目(核心思想与web框架无关),然后写个路由,内容如下

@app.route('/rewrite/')

def rewite():

url_path = str(request.environ['REQUEST_URI'])[1:]

if os.path.exists(url_path):

oFile = open(url_path)

text = oFile.read()

pattern = re.compile('')

result = pattern.findall(text)

content = []

flag = 0

while flag < len(result):

if flag == 0:

exec(result[flag].strip())

content.append('')

else:

content.append(locals()[result[flag].strip()])

flag += 1

flag = 0

def mysub(matched):

nonlocal flag

flag2 = flag

flag += 1

return content[flag2]

res = re.sub('',mysub,text)

return res

else:

return "404 not found"

代码解释:

1.如果有看不懂request.environ['REQUEST_URI'],可以看一下博主之前写的一篇文章“nginx的rewrite ,如何在flask项目中获取重写前的url”

2.result变量用于存放匹配到分隔符内的字符串,是列表

3.content变量用于存放result列表每个元素解释后的值,而content[0]放空字符串(因为没有输出,result[0]只用于通过exec( )来执行字符串语句)

4.测试访问http://ww.html3.com/static/html/1.phtml

假设访问不存在的2.phtml

附:

通配符.  匹配除换行符\n之外的任何单字符

如果要匹配包括换行符的所有字符就不要用(.),用([\s\S])

关于如何解决贪婪匹配,加?

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/521003.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

让你久等了!《码出高效:Java 开发手册》正式发布

可爱的Java开发者们&#xff0c;让你们久等了&#xff01; 9月22日杭州云栖大会&#xff0c;众所期待的新书《码出高效&#xff1a;Java 开发手册》正式发布&#xff0c;并宣布将所有图书收益捐赠于公益项目。 此书从立意到付梓&#xff0c;历时超过两年&#xff0c;期间推翻数…

python中is和 的区别_Python中is和==的区别

"""is和 的区别"""a abcb abcprint("都是字符串-a is b--", a is b)print("都是字符串-a b--", a b)c 11d 11print("都是数字-c is d--", c is d)print("都是数字-c d--", c d)e [0, 1, 2]f …

(Docker实战) 第1篇:Centos7 环境准备和安装Docker-ce

文章目录一 、安装docker1. 卸载以前安装的docker2. 安装必要的系统工具4. 更新yum缓存5. 安装docker6. 更改docker仓库为国内仓库7. 重启docker8. 安装docker-compose一 、安装docker docker优点 快速上手新技术&#xff0c;把精力放在业务上而非安装和配置服务器快速搭建开发…

初入数据科学领域,你需要有七个这样的思维

假设你刚刚被一家小型软件公司聘为数据科学家。你感到欣喜若狂&#xff01;你的辛勤工作和坚持不懈终于得到了回报。是时候将你的统计数据和机器学习知识付诸实践了。那么恭喜你终于加入了数据革命。 第1天到来&#xff0c;每个人都很高兴见到这位“数据科学家”。该公司以前从…

输入文字自动生成图片_原来Word还可以自动生成图片和图表目录!

小李接到了一个任务&#xff0c;将技术文档中的示意图目录做出来&#xff0c;让客户能根据需求快速找到操作示意图&#xff0c;可是这份文档有三百多张图片&#xff0c;不过&#xff0c;这可难不倒小李。说到Word目录&#xff0c;大多数人都知道&#xff0c;可以为文档的标题设…

反转!物联网火爆,开发者却很难入门?

在 2019 北京网络安全大会上&#xff0c;工信部负责人表示&#xff0c;我国面向 5G 和车联网将建设网安防护体系&#xff0c;提升监测预警和应急响应能力。其中物联网设备已成为网安防护新重点。为什么工信部会这么重视物联网&#xff1f;物联网开发者的现状又是如何呢&#xf…

如何深度理解RNN?——看图就好!

欢迎来到循环神经网络的插图指南。我是迈克尔&#xff0c;也被称为LearnedVector&#xff0c;我是AI语音领域的机器学习工程师。如果你刚刚开始使用ML并希望在Recurrent神经网络背后获得一些直觉&#xff0c;那么这篇文章就适合你。 循环神经网络是一种强大的技术&#xff0c;…

java有string这个类型吗_关于java的String类型

String类型的不可变众所周知&#xff0c;String类型是不可变的&#xff0c;一旦String对象被创建好了则这个字符串中的序列就不可改变。为什么String类型是不可变&#xff1f;根据阅读源码可知&#xff0c;String类是一个final类&#xff0c;但是String不可变并不是因为它是一个…

理论与实践:如何从Hadoop迁移到MaxCompute

直播视频回看&#xff0c;传送门&#xff01;分享资料下载&#xff0c;传送门&#xff01;更多精彩内容传送门&#xff1a;大数据计算技术共享计划 — MaxCompute技术公开课第二季 以下内容根据演讲视频以及PPT整理而成。 通常而言&#xff0c;将Hadoop迁移到MaxCompute会分为…

rocketmq原理_彻底看懂RocketMQ事务实现原理

面试中经常会问到比如RocketMQ的事务是如何实现的呢&#xff1f;学习框架&#xff0c;我们不仅要熟练使用&#xff0c;更要掌握设计及原理&#xff0c;才算熟悉一个框架。1 RocketMQ 事务使用案例public class CreateOrderService { Autowired private OrderDao orderDao; A…

要活 102 年,阿里凭借的是什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;作者 | 屠敏责编 | 阿秃由浅到深、由轻到重、由拥抱到创新&#xff0c;看似“风平浪静”的历史背后&#xff0c;中国互联网江湖的发展实则“波涛汹涌”。对于身处核心位置的科技巨头阿里巴巴而言&#xff0c;将如何更好地去实现“希…

阿里云 x 蒙牛 | 打通数据孤岛,基于MaxCompute实现产销协同的智慧运营

每一个公司转型的背后 都有着不为人知的秘密 今天&#xff0c;让我们一起探秘 内蒙古蒙牛乳业&#xff08;集团&#xff09;股份有限公司是中国发展速度最快的乳品企业之一&#xff0c;2017年实现收入601.56亿元&#xff0c;位列全球乳业第10位&#xff0c;与2016年同比收入增…

(Docker实战) 第3篇:Centos7 拉取和部署Mysql

文章目录搭建mysql1. 创建mysql的配置文件2. 创建mysql配置/srv/mysql/conf/custom.cnf3. 下载并安装mysql 5.7&#xff08;注意修改密码&#xff09;搭建mysql 1. 创建mysql的配置文件 mkdir -p /srv/mysql/conf /srv/mysql/logs /srv/mysql/data2. 创建mysql配置/srv/mysql…

java项目类上有黑色的点_图像处理 – 如何使用javacv / opencv识别黑色多边形上的点?...

我试图识别这个黑色多边形周围的轮廓,我需要访问这些点,但它不适合我.这是输入图像但是,当我尝试执行以下代码时,它没有给出预期的结果,这意味着它应该.CanvasFrame cnvsnew CanvasFrame("Polygon");cnvs.setDefaultCloseOperation(javax.swing.JFrame.EXIT_ON_CLOSE…

Hadoop迁移MaxCompute神器之DataX-On-Hadoop使用指南

DataX-On-Hadoop即使用hadoop的任务调度器&#xff0c;将DataX task(Reader->Channel->Writer)调度到hadoop执行集群上执行。这样用户的hadoop数据可以通过MR任务批量上传到MaxCompute、RDS等&#xff0c;不需要用户提前安装和部署DataX软件包&#xff0c;也不需要另外为…

python 爬虫代理_python 爬虫 使用代理 的问题

刚刚在使用Python写爬虫&#xff0c;但是由于我在公司没有上网权限&#xff0c;所以借别人的账号用(opera 浏览器代理 可有上网)&#xff0c;我将代理信息写在python脚本里面但是出现了下面的错误.代码:import urllib2proxy_info {user : xxx ,pass : xxxx ,host : xx.xx.xx.x…

(Docker实战) 第三篇:配置_开发环境

文章目录一、开发环境-建立开发环境1.1. 常用环境下载地址1.2. IDEA的maven配置1.3. 导入项目示例1.4. IDEA教程&#xff0c;如何从eclipse过渡1.5. gblfy的快捷键风格一、开发环境-建立开发环境 1.1. 常用环境下载地址 jdk8下载地址&#xff1a; https://www.oracle.com/te…

阿里云史上最大技术升级:面向万物智能的飞天2.0

1991年&#xff0c;《科学美国人》杂志描绘了一种“无处不在的计算设备&#xff0c;没人会感觉到它的存在”&#xff0c;拉开了万物智能的序幕。 27年后的2018杭州•云栖大会上&#xff0c;阿里云公布了面向万物智能的新一代云计算操作系统——飞天2.0&#xff0c;可满足百亿级…

杭州·云栖大会宣布多款核心云产品降价,最高降幅达90%

2018杭州云栖大会&#xff0c;阿里云宣布开启新一轮核心产品降价&#xff0c;再次用科技普惠广大开发者和用户&#xff0c;加速产业升级。本次降价涉及近20款产品&#xff0c;产品包括智能语音交互、图像识别、性能测试PTS、云数据库RDS等&#xff0c;其中事务消息降价90%&…

(Docker实战) 第四篇:建立持续集成环境01

标签&#xff1a; gblfy技术文档 文章目录一、 jenkins环境建立1.1. jenkins安装1.2. 安装jenkins前提&#xff1a;下载jdk1.3. 配置jenkins1.3.1. 配置远程发布插件Publish over SSH 选择系统设置1.3.2. 配置jdk&#xff0c;git&#xff0c;maven 选择系统管理->全局工具配…