欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程语言 > php >内容正文

php

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

发布时间:2024/9/27 php 35 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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])

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

总结

以上是生活随笔为你收集整理的phppython混合开发_如何让python嵌入html实现类似php的快速开发,十分有价值的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。