文章预览包含html字符

2024-04-25 14:14:21 发布

您现在位置:Python中文网/ 问答频道 /正文

我的问题与这个家伙here非常相似,只是我想使用python(我在django上开发了我的站点)来显示我的文章的预览(大约100个字符)。如果你有办法的话,你能和我分享一下吗?你知道吗

编辑:(到目前为止我做了什么?)我试着从原始帖子中提取前100个字符。类似post[:100]的东西。这不是正确的解决方案,因为原始post的简单子字符串显然包含未正确关闭的html语法。你知道吗

EDIT2:我是django新手。实际上这是我在django的第一个项目。 谢谢


Tags: django字符串编辑here站点html文章语法
1条回答
网友
1楼 · 发布于 2024-04-25 14:14:21

我不知道网上有什么例子能说明这一点,但我有一个包含这一功能的个人项目;agconti:stamped。你知道吗

如果您想克隆并测试整个repo,那么上面会链接整个repo,但是与您的需求相关的代码是

Ajax帖子:

var send_data = { 'name': place.name, 'address': address};

var csrftoken = $.cookie('csrftoken'); 

function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
} 

$.ajaxSetup({
    crossDomain: false, // obviates need for sameOrigin test
    beforeSend: function(xhr, settings) {
        if (!csrfSafeMethod(settings.type)) {
            xhr.setRequestHeader("X-CSRFToken", csrftoken);
            xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
        }
    }
});


$.ajax({ url: '/results/',
    type: 'POST',
    data: send_data,
    success: function(response, status, jqXHR) {
      $("#results").html(response);
      //console.log('success function resp');
      //console.log(jqXHR.getAllResponseHeaders());
    },
    error: function(obj, status, err) { alert(err); console.log(err); }
  });

控制注入模板和正常页面查看的示例:

{% extends x|yesno:"stamped/blank.html,stamped/home.html" %}
{% load stamped_custom_tags %}
{% block results %}

<!  Your HTML Here  >

<h1> title and stuff </h1>

<div> I contain things! </div>

{% endblock %}

home.html是我的index.html,它包含#resultsdiv!你知道吗

Blank.html

{% block results %}{% endblock %}

<!  to allow for corrected shared rendering 
        with ajax posts and normal django rendering  >

任何呈现页面的普通django视图都将返回html,上面的ajax post将注入ajax post发起的页面上的#resultsdiv(不包括在上面的示例中)。你知道吗

编辑您的评论:

我假设你真正想在预览中显示的是一些重要的东西,比如一篇文章的标题。我会有一个单独的预览,呈现预览模板视图。在该模板中,我可以执行以下操作:

<!  blank because this will be injected into your page  >

{{ article_title|truncatechars:9 }}

然后,您可以将其注入到页面中,并在例如鼠标上显示它。你知道吗

相关问题 更多 >

    热门问题