Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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 在django模板中将unicode解码为字符串_Python_Django_Mongodb_Unicode_Scrapy - Fatal编程技术网

Python 在django模板中将unicode解码为字符串

Python 在django模板中将unicode解码为字符串,python,django,mongodb,unicode,scrapy,Python,Django,Mongodb,Unicode,Scrapy,我正在尝试循环遍历数据库,并在django模板中输出结果。我完成了所有这些工作,但它在html中输出的每个项目如下所示: [u'AMD',u'A10-7700K,3,4 GHz(3,8 GHz涡轮增压)FM2+处理器'] [u'\n 3.400 MHz\xa0\n',u'\n 4芯\xa0\n',u'\n FM2+\xa0\n'] 记录在案。我希望它输出为普通字符串,而不使用unicode。我尝试了很多方法,但似乎都不管用。我会写下我尝试过的所有事情,但老实说,我甚至都记不住 我得到了以下dja

我正在尝试循环遍历数据库,并在django模板中输出结果。我完成了所有这些工作,但它在html中输出的每个项目如下所示:

[u'AMD',u'A10-7700K,3,4 GHz(3,8 GHz涡轮增压)FM2+处理器']

[u'\n 3.400 MHz\xa0\n',u'\n 4芯\xa0\n',u'\n FM2+\xa0\n']

记录在案。我希望它输出为普通字符串,而不使用unicode。我尝试了很多方法,但似乎都不管用。我会写下我尝试过的所有事情,但老实说,我甚至都记不住

我得到了以下django文件,我只写下相关的部分:

views.py:

def processoren(request):

    processoren = Processoren.objects(categorie__contains='Processor')[:10]
    #processoren = json.dumps(list(processoren)
    return render_to_response('processoren.html', {'Processoren': processoren},
                          context_instance=RequestContext(request))
models.py:

from django.db import models

from mongoengine import *
from APc.settings import DBNAME

connect(DBNAME)

    class Processoren(Document):
    categorie = StringField(max_length=120)
    naam = StringField(max_length=500)
    subnaam = StringField(max_length=500)
    info = StringField(max_length=500)
    stock = StringField(max_length=500)
    enter code hereprijs = StringField(max_length=120)
processoren.html:

{% extends "base.html" %}
{% load static %}
{% block content %}
<div class="container">
    <div class="col-md-4 col-lg-2">



    </div>

    <div class="col-md-8 col-lg-10">

    <div class=" top-margin">
        
        <h1>Processoren</h1>
        {% for processor in Processoren %}
        <div class="list-group">
            <div class="list-group-item">                    
                <div class="row-picture">
                    <img class="square" src="http://lorempixel.com/56/56/people/1"    alt="icon">
                </div>

                <div class="row-content">
                    <h4 class="list-group-item-heading">{{ processor.naam }}</h4>
                    <p class="list-group-item-text">{{ processor.info }}</p>
                    <p class="list-group-item-text pull-right">{{ processor.prijs }}</p>
                    <p class="list-group-item-text pull-right">{{ processor.stock }}</p>
                </div>

            </div>



        </div>
        {% endfor %}

    </div>


</div>
</div>
{% endblock %}
{%extends“base.html”%}
{%load static%}
{%block content%}
加工工
{Processoren%中处理器的%n}
{{processor.naam}

{{processor.info}

{{processor.prijs}

{{processor.stock}

{%endfor%} {%endblock%}

例如,我试图简单地将str()放在processor.naam之后,但这也不起作用。工作原理是在processor.naam之后添加0,但我当然只得到第一个索引,即“AMD”。任何帮助都将不胜感激。

由于不熟悉MongoEngine关于Django的内容,将unicode值转换为字符串非常简单,希望在解决问题的根源之前,这将暂时帮助您

objects = Processoren.objects.filter(categorie__contains='Processor')[:10]
processoren = [str(p.naam) for p in objects]

同样,我不知道在使用该引擎的查询集上有哪些方法可用,因此在本例中我避免使用
values\u list
。我也不确定需要输出哪个属性,所以我只使用了naam,这与Unicode无关。如果您有一个项目列表,则需要对其进行迭代

{% for name in processor.naam %}{{ name }}{% endfor %}

你确定这一行:
processoren=processoren.objects(categorie\uu contains='Processor')[:10]
不是
processoren=processoren.objects.filter(categorie\uu contains='Processor')[:10]
?我不确定.filter()有什么作用,但遗憾的是它给出了同样的结果。你使用的是Django的非rel分支吗?或者?不,至少据我所知不是这样。我使用mongoengine连接mongodb。我不太熟悉使用该引擎。我可以向您展示一种将unicode值转换为字符串的方法,但我不确定这是解决问题根源的最佳方法。这至少给了我一点帮助。非常感谢!是的,我一直在想,但我不知道如何在django模板中通过它们进行迭代。例如,我尝试了processor.naam.0:5,但这不起作用。我也找不到任何相关文件。谢谢你的帮助!我已经发布了一个例子。