在html文件里写python语法的内容,的注意事项:

1:python程序中的变量通过以下方法传入到html:

1:通过全局变量 :全局变量是不须要用$def with语法实现传递的,仅仅要定义了
在html中就能够用,样例例如以下:
===================================================================
#模板公共变量,以下能够定义全部的html文件都要用到的变量 ,不须要复杂的
$def with (va,vb)
t_globals = {
    'datestr': web.datestr,
    'cookie': web.cookies,
    "loginform": login,
    "gposts":model.get_posts,
}
#指定模板文件夹,并设定公共模板,base="base"设定共用的base.html模板,
在./templates/base.html这个路径 找到这个文件
render = web.template.render('templates', base='base', globals=t_globals)
=========================================================
2:通过在python程序中在render时传入 ,样例例如以下:
=========================================================
在python文件里,
render=web.template.render("./")
class index:
def GET(self):
abc="world"
render.index(name=abc)
在index.html文件里:
$def with (name)
hello $name
===========================================================
能够看到上面的样例是在python文件里对index()函数传入了name,
而在index.html文件里,要定义一个暂时变量,接受这个传入的变量 
abc是python中的变量的名字
name是html文件里变量的名字,
在render.index(name=abc)实现了变量的传递 ,
注意:在 python中render.index(a,b)能够传递多个变量 
那么在 html文件里就要声明相应的暂时变量 $def with (va,vb)
===========================================================

2:使用模板的几种方法:

1:直接使用html文件,并向index.html文件传入python变量 ,样例例如以下,
在python中:

render=web.template.render("templates")
class index:def GET(self):return reder.index("wolrd")

#templates是文件夹,到时把全部html文件放在templates文件夹下,如要用到的index.html
2:直接指定详细的文件,这种方法扩展行不好,

 hello=web.template.frender("templates/hello.html")return hello("world")

3:使用字符串

html="$def with (name)\n hello $name"
hello=web.tempate.Template(html)
return hello("wolrd")

================================================================
能够看到调用了template的三种方法:

render=web.template.render("templates")仅仅指定html文件的路径
render.index("world")hello=web.tempalte.frender("templates/hello.html")指定了详细的html文件
hello("world")hello=web.template.Template(string)直接把字符串传入进去,
hello("world")

================================================================
上面三种方法最经常使用的是第一中,render.index的方式,
================================================================

3:以下是python 在html文件里的基本的语法 
1:得到变量的值 ,注意仅仅是语法,没有太多的为什么

$varible
$(varible)
${varible}

2:在html文件里创建新的变量 ,肯定是在赋值时才会创建新的变量 啊

语法例如以下,$ 加上空格 加上变量名,空格非常重要

$ bug=True
$ va=1
<div>
$var
</div>

3: 在取变量的值的时候 ,你会看到两种语法:

第一种:    $a
另外一种:    $:a
默认的python会使用web.websafe filter对变量做HTML-encoding.就是第一种方式,另外一种方法不会对变量a做html-encoding

4: \ 这个符号的有点意思,会使多行的内容,仅仅显示一行

hello \
wolrd
注意:要在\ 这个符号后面立即敲enter,要不然 \的特殊含义会消失,并且会一起显示出来

5:问你个问题,怎样在html文件里显示$这个符号(由于给webpy当特殊的用了)

答案非常easy,输入两个$$即可了
美元的符号是$$
亲,上面仅仅会显示一个$哦

6:在html中怎样写python风格的凝视呢,我说的不是<!这种凝视哦>

$#这是凝视,你在浏览器中是看不到的,webpy把这部分给filter了

7:到了控制流部分了, 注意的面的i want这一句的缩进,要大于两个空格,

你用tab按键一般不会有问题

$for i in range(10):i want  eat  $i apple(s) $ a=4
$while a<10:$a$ a+=1$if a>10:hell $a
$else:keep on ,you will do it一个for 在 html应用中的样例,这样创建一个表
<table>
$for c in ["a", "b", "c", "d"]:<tr class="abc"><td>$index</td><td>$c</td></tr>
</table>

8:其他一些实用的东西 如,$def

还能够在html中定义函数,这是多么方便的东西

$def tr(value):<tr>$for i in value:<td>$i</td></tr>$def table(rows):<table>$for row in rows:$:row</table>$ data=[['a', 'b', 'c'], [1, 2, 3], [2, 4, 6], [3, 6, 9] ]$:table([tr(d) for d in data])

9:另一个奇妙的 keyword code,全部的python代码都能够写在code 块以下:

$code:x = "you can write any python code here"y = x.title()z = len(x + y)def limit(s, width=10):"""limits a string to the given width"""if len(s) >= width:return s[:width] + "..."else:return s

回来到html
上面定义的变量在这里也能够用,
比如
$limit(x)

10:var块,这是个比較难懂的东东,看以下的代码
在html中

$def with (title, body)$var title: $title
$var content_type: text/html<div id="body">
$body
</div>

在python中

>>> out = render.page('hello', 'hello world')
>>> out.title
u'hello'
>>> out.content_type
u'text/html'
>>> str(out)
'\n\n<div>\nhello world\n</div>\n'

能够看到varkeyword的作用是把在 html中定义的变量,传回到python程序中,
 python就能够依据这些内容做很多其它的处理,

11:在html文件里能够訪问的builtin 函数 和变量 ,经常使用的函数都是

能訪问的,如max,min,range,
True,False也是能识别的,
与builtin相应的一个概念是详细应用程序的globals变量或是函数,
怎样使用这些globals变量或是函数能够被全部的html templates訪问呢?
样例例如以下:

import web
import markdown
globals={"markdown":markdown.markdown}
render=web.template.render("tempaltes",globals=globals)

这样在全部的html文件里都能够使用 makrdown这个函数了
感觉这个函数就像是builtin的一样,

12:出于安全考虑,以下的命令不能在html模板中出现

import ,exec
訪问属性时不能用 _开头,
不能使用open,getattr,setattr这些函数
假设你的模板不小心用了上面的情况,会出现SecurityException 这个安全
异常
知道上面的事,你就能够在html中写python了,

转载于:https://www.cnblogs.com/mengfanrong/p/3929507.html

在html中写python代码的语法和特点-----基于webpy的httpserver相关推荐

  1. 在Linux命令行终端中写python代码的简单操作

    Linux终端中的操作均是使用命令行来进行的.因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来. 打开命令行窗口 打开命令行窗口的快捷键如下: ...

  2. 在vim中写python程序_在Vim中运行Python代码

    在Vim中运行Python代码 我正在使用Vim编写Python代码,每次我想运行我的代码时,我都会在Vim中输入: :w !python 这令人沮丧,所以我一直在寻找一种更快的方法来在Vim中运行P ...

  3. python函数式编程读取数据时出现错误_写 Python 代码不可不知的函数式编程技术...

    原标题:写 Python 代码不可不知的函数式编程技术 选自 Medium 作者:Raivat Shah 参与:魔王.Jamin 本文对 Python 中的函数式编程技术进行了简单的入门介绍. 近来, ...

  4. java怎么调用python_如何在Java中调用Python代码

    Jython(原JPython),是一个用2113Java语言写的Python解释5261器.在没有第三方模块的情况下4102,通常选择利用Jython来调用1653Python代码,它是一个开源的J ...

  5. excel中使用python代码

    这次我们会介绍如何使用xlwings将Python和Excel两大数据工具进行集成,更便捷地处理日常工作. 说起Excel,那绝对是数据处理领域王者般的存在,尽管已经诞生三十多年了,现在全球仍有7.5 ...

  6. 会写Python代码的人工智能Kite宣布支持Linux,“程序猿”要失业了?

    Kite,那个能为"程序猿"们减少写Python代码时的重复劳动的"自动完成AI",近日宣布,为了回应社区的反馈,它已经添加了对Ubuntu 16.04+.De ...

  7. 用Python代码自己写Python代码,竟如此简单

    用Python代码自己写Python代码,竟如此简单 Python作为一门功能强大且使用灵活的编程语言,可以应用于各种领域,具有"无所不能"的特质. Python甚至可以代替人,自 ...

  8. 天秀,“手机” 也可以写Python代码了!

    大家好,我是小五???? 不得不说,对于写代码这件事,真的必须就是在电脑上才会有很好的体验.手机上写Python代码,那种感觉确实不敢想. 但是总有粉丝私信我: 有没有手机端写Python代码的软件呢 ...

  9. ChatGPT写python代码实录

    ChatGPT写python代码实录 print('hello world') 众所周知,咱们程序员学习编程是为了世界好. 所以,咱们就从hello world开始. 然后是一个杨辉三角 def ge ...

  10. Python Excel中使用python代码

    Python Excel中使用python代码 如果哪一天excel可以用python去写代码该是多好的一件事情啊~ 本人想在excel中运行py代码 按以下步骤行动 pip install xlwi ...

最新文章

  1. 发现优质免费的区块链在线教程资源,包含PPT和视频资源,全部免费
  2. JavaScript引擎研究与C、C++与互调用(转)
  3. php 判断是否gzip,PHP网站判断页面文件或图片是否经过gzip压缩
  4. linux分区模型,linux设备驱动模型详解.pdf
  5. keras冻结_【连载】深度学习第22讲:搭建一个基于keras的迁移学习花朵识别系统(附数据)...
  6. ubuntu安装百度网盘
  7. [D3D] - 用PerfHUD来调试商业游戏
  8. java类使用其他类的变量_如何将java类中的变量加载到其他类
  9. 第二课计算机ppt,第二课计算机系统.ppt
  10. 关于Spring的几个问题
  11. 码云上传项目时出现空目录的解决办法
  12. c语言用指针访问简单变量,关于C语言指针,个人认为最经典、最简单的一个应用...
  13. 10的28次方C语言,c语言编程测定28的28次方有多少位
  14. MATLAB 指定线型和颜色
  15. 移动安全-IOS越狱
  16. 地理社交网络中基于多目标组合优化的空间感知影响力联合最大化
  17. acdream 1401 Lempel-Ziv Compression
  18. 脑机接口技术使瘫痪病人重获运动能力,4D打印技术已经到来!|技术前沿洞察...
  19. 【原创】PHP程序员的技术成长规划
  20. 纳税信用等级怎么划分 激励惩戒措施有哪些

热门文章

  1. 【LeetCode】205 Isomorphic Strings (c++实现)
  2. 在虚拟主机上部署ASP.NET AJAX 1.0 Beta的程序集
  3. 前端技术栈---Vue(1)安装与初始化
  4. linux中 ECShop的文件不能写
  5. 深度学习打造精准推荐系统,细说国美互联网 AI 发展的进击之路
  6. Introduction to Conditional Random Fields
  7. 最近面试有感,不要耍小聪明,面试官都是开了上帝视角的
  8. Netty-Pipeline组件
  9. xadmin可能是帮助我完成django网站的一大助力
  10. python常用的十进制、16进制、字符串、字节串之间的转换