使用Jinja2模板在Google App Engine中创建超链接

时间:2014-01-02 14:50:33

标签: python google-app-engine hyperlink jinja2

我正在尝试从Quora的RSS页面中删除链接,我已经成功地这样做了。但是,我希望这些链接在我的应用程序中显示为超链接,而不是简单地显示为纯文本。

到目前为止,这是应用程序:

http://deploymentapp.appspot.com/

这是主要的python代码:

import os
import webapp2
import jinja2
from google.appengine.ext import db
import urllib2
import re

template_dir = os.path.join(os.path.dirname(__file__), 'templates')
jinja_env = jinja2.Environment(loader = jinja2.FileSystemLoader(template_dir), autoescape=True)

class Handler(webapp2.RequestHandler):
    def write(self, *a, **kw):
        self.response.out.write(*a, **kw)
    def render_str(self, template, **params):
        t = jinja_env.get_template(template)
        return t.render(params)
    def render(self, template, **kw):
        self.write(self.render_str(template, **kw))

class MainPage(Handler):
    def get(self):
        content = urllib2.urlopen('http://www.quora.com/Python-programming-language-1/rss').read()
        allTitles =  re.compile('<title>(.*?)</title>')
        allLinks = re.compile('<link>(.*?)</link>')
        list = re.findall(allTitles,content)
        linklist = re.findall(allLinks,content)
        self.render('frontrss.html', list = list, linklist = linklist)


app = webapp2.WSGIApplication([('/', MainPage)], debug=True)

这是HTML源代码:

<h1>Quora Live Feed</h1><br><br><br>

{% extends "rssbase.html" %}

{% block content %}
    {% for e in range(1, 19) %}
        {{ (list[e]) }} <br>
        {{ (linklist[e]) }}
        <br><br>
    {% endfor %}
{% endblock %}

所以基本上,我不知道当从Jinja2模板中的外部源代码中删除时,如何使链接显示为超链接。

1 个答案:

答案 0 :(得分:1)

这只是基本HTML:您将链接放在href标记的a属性中:

<a href="{{ linklist[e] }}">{{ list[e] }}</a>