Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 文章预览包含html字符_Python_Django - Fatal编程技术网

Python 文章预览包含html字符

Python 文章预览包含html字符,python,django,Python,Django,我有一个和这个家伙非常相似的问题,除了我想使用python(我在django上开发了我的站点)来显示我的文章的预览(大约100个字符)。如果你找到了一种方法,你能和我分享一下吗 编辑:(到目前为止我做了什么?)我试着从原始帖子中提取前100个字符。类似post的东西。这不是正确的解决方案,因为原始帖子的简单子字符串显然包含未正确关闭的html语法 EDIT2:我是django新手。实际上,这是我在django上的第一个项目。 谢谢我不知道有任何在线示例显示这一点,但我有一个包含该功能的个人项目

我有一个和这个家伙非常相似的问题,除了我想使用python(我在django上开发了我的站点)来显示我的文章的预览(大约100个字符)。如果你找到了一种方法,你能和我分享一下吗

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

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

我不知道有任何在线示例显示这一点,但我有一个包含该功能的个人项目

如果你想克隆整个回购协议并对其进行测试,那么上面会链接整个回购协议,但是与你的需求相关的代码是

阿贾克斯邮报:

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 %}
任何呈现页面的普通django视图都将返回html,上面的ajax帖子将注入ajax帖子发起页面上的
#results
div(不包括在上面的示例中)

根据您的评论编辑:

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

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

{{ article_title|truncatechars:9 }}

{{文章标题| truncatechars:9}

然后,您可以将其注入到页面中,并将其显示在鼠标上方

你到底想完成什么?类似于不同页面的弹出预览?到目前为止,您尝试了什么?谢谢@agconti。我已经更新了这篇文章。你有没有想过在django视图中使用ajax文章,然后成功地将返回的html注入到页面的dom中?您正在尝试显示html还是呈现的html页面?在django中,您可以有一个专门用于注入页面的模板,这样它就不会包含任何您不希望它包含的html。那就很容易了。@agconti我不明白你说的“你是想显示html还是呈现的html页面?”是什么意思。我试图呈现包含帖子快照的html页面。因此,如果我的控制器将post[:100]返回给视图(比如用django模板语言编写的index.html),那么视图如何知道这个子字符串的末尾是否包含不正确的html?另外,我不想操纵控制器中的“post”字符串(包含html)来保持设计的整洁。明白了吗。我想我知道你想要什么。如果您制作一个“预览”帖子模板,并通过ajax帖子将其动态呈现到页面中,那么它应该是直接的。通过这种方式,您不必解析不同的页面并尝试显示它,它最终会让您更好地控制预览!您好吗?

您只想在预览中显示3个角色,即Hi!(粗体)。所以我猜你是在用#results div?@ShankhoneerChakrovarty根据你的评论更新了我的答案。谢谢@agconti这正是我想要的:)但是如果我在上面的例子中使用{article_title | truncatechars:3},还有一个问题:它将返回“”(w/o引号)而不是Hi!(粗体)。由于只截断title变量(必须从django视图生成并作为上下文传递给模板),因此它不会截断任何html。您可以在ajax帖子中截断响应,但在剪切html标记时会遇到问题。是的,您知道如何传递上下文吗?我应该解析“post”字符串并提取普通文本(通过删除html语法),然后将其传递给ajax函数吗?
<!-- blank because this will be injected into your page -->

{{ article_title|truncatechars:9 }}