GVKun编程网logo

Python Pyramid和Chameleon模板语言转义html(python html转换为普通文本)

18

如果您想了解PythonPyramid和Chameleon模板语言转义html的相关知识,那么本文是一篇不可错过的文章,我们将对pythonhtml转换为普通文本进行全面详尽的解释,并且为您提供关于H

如果您想了解Python Pyramid和Chameleon模板语言转义html的相关知识,那么本文是一篇不可错过的文章,我们将对python html转换为普通文本进行全面详尽的解释,并且为您提供关于HAML或Jade模板语法可用于Python?、HTML代码,使用python在一个html页面中显示splitted data_frame、jquery – Python Pyramid视图中的异常管理、Pyramid 1.1正式版发布,Python Web开发框架的有价值的信息。

本文目录一览:

Python Pyramid和Chameleon模板语言转义html(python html转换为普通文本)

Python Pyramid和Chameleon模板语言转义html(python html转换为普通文本)

我无法理解变色龙的标签。我是django使用者,但决定将我的CompSci课程伙伴和我自己介绍给Pyramid,因为我虽然更轻巧=更容易学习。

目前,$ {}标签正在转义我尝试通过其输出的任何html标签。在django中,有一种方法可以指定变量是“安全的”并且不需要进行转义。

如何在金字塔/变色龙中做同样的事情?

答案1

小编典典

Chameleon基于Zope页面模板库,因此,如果您发现缺少Chameleon文档,则不妨查看zpt文档。

无论如何,有两种主要方法可以做到这一点。如果使用tal:replace或tal:content标记属性进行渲染,则可以使用“
structure”。这是通过structure在字符串的开头放置一个空格,最后是要呈现的模板变量的名称来完成的。一个例子如下所示:

s = ''''''<html>    <head>    </head>    <body>        <div tal:content="structure t">        </div>    </body></html>''''''from chameleon import PageTemplatept = PageTemplate(s)print pt(t=''<p>Hi!</p>'')

如果您不想使用tal:replace或tal:content函数,则需要将字符串包装在Chameleon渲染器将不会尝试转义的对象中(这意味着它具有一个__html__返回字符串应为真值的方法)
。通常,这意味着创建一个“文学”类,如下所示:

a = ''''''<html>    <head>    </head>    <body>        <div>            ${t}        </div>    </body></html>''''''from chameleon import PageTemplatept = PageTemplate(a)class Literal(object):    def __init__(self, s):        self.s =s    def __html__(self):        return self.sprint pt(t=Literal(''<p>Hi!</p>''))

HAML或Jade模板语法可用于Python?

HAML或Jade模板语法可用于Python?

有没有Python的模板引擎,语法类似于Jade或HAML?

解决方法

检查pyjade Python软件包 here at pypi和 here at github。

Pyjade is a Jade Syntax adapter for Django,Jinja2 and Mako templates

免责声明:我是店主:)

HTML代码,使用python在一个html页面中显示splitted data_frame

HTML代码,使用python在一个html页面中显示splitted data_frame

我是html / css的新手,所以对于以html格式显示的数据有疑问.我所拥有的是一个很长的列表,我希望将其拆分并以html格式显示为两个单独的列.例如,而不是:

Col1 Col2
1     a
2     a
3     a
4     a
5     b
6     b
7     b
8     b

我希望看到文字为

Col1 Col2   Col1   Col2
1     a      5       b
2     a      6       b 
3     a      7       b
4     a      8       b

我的html / css代码应该如何在分割表中显示上面的数据?

对于第一个输出,在一个表中查看2列中的所有数据我正在使用代码python:

start = '''<html><head><Meta http-equiv="Content-Type" content="text/html; charset=utf-8"></Meta></head> '''
font_size = '14pt''<style media="screen" type="text/css">
table.table1 {

  border-collapse: collapse;
  width: 20%;
  font-size: '''+font_size+''';

}

td {

  text-align: left;
  border: 1px solid #ccc;
}
th {

  text-align: left;
  border: 1px solid #ccc;
  background-color: #072FB1;
}
</style>
'''

title = '''<div align="center"></br><font size = "24"><strong>'''+title+'''</strong></font></br></br></</div>'''

df_data1 = df_data[1:10]
data = df_data1.to_html( index = False,na_rep ='' )
data = data.replace('None','')

style_headers = 'background-color: #072FB1; color: #ffffff;'
style_status_new ='background-color: #587EF8; color: #ffffff;font-weight:bold'

style_first_col = 'font-weight:bold;'

total = 'TOTAL'
soup = bs4.BeautifulSoup(data)
soup.thead.tr.attrs['style'] = style_headers

html = start+lentos+style+'''<body bgcolor="#FFFFFF">'''+title+time+unicode.join(u'\n',map(unicode,soup))+finish 

try:
    with open(dir_files+'engines_tv_html.html','w') as file:
        file.write(html.encode('UTF-8'))
except Exception,e:
    log_error()

在df_data [1:10]中,我将数据拆分为单独的data_frames.
所以问题是在一个html页面中看到splitted data_frame(左边的一个表和右边的另一个表)

解决方法

由于您的数据由 pandas.DataFrame管理,我建议您尝试使用 pandas构建表.

pd.merge(left=df_data[0:4],left_index=True,right=df_data[4:8].reset_index(drop=True),right_index=True,suffixes=['_left','_right'],how='outer')

   Col1_left Col2_left  Col1_right Col2_right
0          1         a           5          b
1          2         a           6          b
2          3         a           7          b
3          4         a           8          b

jquery – Python Pyramid视图中的异常管理

jquery – Python Pyramid视图中的异常管理

我正在编写Python Pyramid项目,我使用jQuery和jquery.form.js.我希望我的观点能够处理HTTP和AJAX帖子(我不确定它是否是最好的主意,但这可能是另一个问题的内容).

现在,当发送HTTP POST并发生错误时,我使用self.request.session.flash()进行错误通知.
但是当发布Ajax时,我返回HTTPOk()或HTTPServerError()响应,这样我就可以轻松地向用户显示错误消息:

$('.ajax_form').ajaxForm({
    error: function(xhr, textStatus, err){
        $('.ajax_messages>.alert').hide().siblings('.alert-error').show().children('p').text(xhr.responseText);
    },
    success: function(responseText, statusText, xhr){
        $('.ajax_messages>.alert').hide().siblings('.alert-success').show().children('p').text(xhr.responseText);
    }
});

但是,正如Loïc Faure-Lacroix建议我可以为Ajax和HTTP请求发送dict,这样可以简化代码.

什么是更好的主意?抛出异常时我应该从视图中返回什么?

解决方法:

我们的想法是返回一个包含json响应中所需值的dict.此dict可以通过json或您的模板呈现.在错误情况下,您可以将响应状态设置为500.如果您执行的所有操作都相同(json和html需要相同的数据,相同的响应代码),则此方法有效.否则你的生活将会很艰难,最好将它分开.

@action(name='ftp', renderer='templates/ftp.pt')
@action(xhr=True, renderer='json', name='ftp')
def ftp_ajax(self):
    log.debug('View: %s', 'ftp (ajax)')

    if 'form.submitted' in self.params:
        try:
            self.config.save(self.params)
        except:
            request.response.status = 500
            return {'status': 'error', 'error_msg': 'some error'}
        else:
            return {'status': 'success'}

    request.response.status = 400
    return {'status': 'error', 'error_msg': 'invalid request'}

您所要做的就是确保您的模板可以处理’status’和’error_msg’字段并且您很高兴.同样,只有在模板的要求是您为json返回的内容的子集时,这才有效.

Pyramid 1.1正式版发布,Python Web开发框架

Pyramid 1.1正式版发布,Python Web开发框架

Python Web开发框架Pyramid 1.1正式版发布了!

Pyramid是Pylons Project的核心产品,它具有灵活轻巧、运行速度快的特点。

Pyramid 1.1的新特性如下:

支持request.response属性;New views introspection feature: paster pviews;支持静态路由; 默认的HTTP异常视图;http_cache视图配置参数允许Pyramid设置HTTP缓存头文件; 新特性使得在Pyramid环境中写脚本更容易,同时该版本还改进了依赖性,并完善了文档。

更多更新内容:http://docs.pylonsproject.org/projects/pyramid/1.1/whatsnew-1.1.html

安装说明:http://docs.pylonsproject.org/projects/pyramid/1.1/narr/install.html

关于Python Pyramid和Chameleon模板语言转义htmlpython html转换为普通文本的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于HAML或Jade模板语法可用于Python?、HTML代码,使用python在一个html页面中显示splitted data_frame、jquery – Python Pyramid视图中的异常管理、Pyramid 1.1正式版发布,Python Web开发框架等相关知识的信息别忘了在本站进行查找喔。

本文标签: