小编vis*_*ell的帖子

list()比列表理解使用更多的内存

所以我正在玩list对象,并发现一些奇怪的事情,如果list创建list()它使用更多的内存,而不是列表理解?我正在使用Python 3.5.2

In [1]: import sys
In [2]: a = list(range(100))
In [3]: sys.getsizeof(a)
Out[3]: 1008
In [4]: b = [i for i in range(100)]
In [5]: sys.getsizeof(b)
Out[5]: 912
In [6]: type(a) == type(b)
Out[6]: True
In [7]: a == b
Out[7]: True
In [8]: sys.getsizeof(list(b))
Out[8]: 1008
Run Code Online (Sandbox Code Playgroud)

来自文档:

列表可以通过以下几种方式构建:

  • 使用一对方括号表示空列表: []
  • 使用方括号,用逗号分隔项目:[a],[a, b, c]
  • 使用列表理解: [x for x in iterable]
  • 使用类型构造函数:list()list(iterable)

但似乎使用list()它会占用更多内存. …

python cpython list-comprehension list python-internals

78
推荐指数
2
解决办法
3295
查看次数

django createview如何获取创建的对象

我有两个连接的形式.基本上用户填写第一种形式,然后重定向到第二种形式,这增加了第一种形式的数据的价值.EG我有一个表单电影(第一个表单)然后我被重定向到表单(演员),它将演员添加到电影中.

在我的情况下,电影= Chiamata和演员= Offerta(我保留意大利人的名字,我需要:D)

精细.

这些是我在urls.py中的网址

url(r'^chiamata/$', ChiamataCreate.as_view(),name='chiamata_create'),
url(r'^chimamata/(?P<pk>\d+)/offerta$', OffertaCreate.as_view(), name='offerta_create'),
Run Code Online (Sandbox Code Playgroud)

我创建了这个视图

class ChiamataCreate(CreateView):
    template_name = 'chiamata_form.html'
    form_class = ChiamataForm
    success_url=reverse_lazy('offerta_create',args=(??,))
Run Code Online (Sandbox Code Playgroud)

现在问题是如何获得chiamataForm创建的对象的PK.我需要将它添加到offerta_create的url中.

django create-view django-class-based-views

35
推荐指数
1
解决办法
2万
查看次数

Django模板转义

Django模板系统为html中的内容提供了一些选项(过滤器),但作为一个初学者,它们让我感到困惑.假设我正在按照教程制作一个简单的博客,并且博客内容需要转义 - 我相信内容,因为我是唯一一个编辑它的人.所以,问题是我应该做的像{{ post.content|autoescape }},{{ post.content|escape }}{{ post.content|safe }}在html?

谢谢

编辑:我应该使用哪个过滤器将特殊字符自动转换为html实体?

编辑2:我刚刚意识到autoescape不是一个有效的过滤器.

django django-templates django-template-filters

32
推荐指数
3
解决办法
4万
查看次数

从django/python中的request.POST中检索列表项

在我request.POST得到一个查询字典时,这个字典中的一个项目是一个包含多个项目的列表(pass_id)例如.

我想检索每个值pass_id并存储在新列表中.你能为此建议代码吗?

python django

30
推荐指数
2
解决办法
3万
查看次数

初学者:Django ModelForm覆盖小部件

免责声明:我是python和Django的初学者,但有Drupal编程经验.

如何覆盖此默认小部件:

#models.py
class Project(models.Model):
color_mode = models.CharField(max_length=50, null=True, blank=True, help_text='colors - e.g black and white, grayscale')
Run Code Online (Sandbox Code Playgroud)

在我的表格中有一个选择框?以下是好的还是我错过了什么?

#forms.py
from django.forms import ModelForm, Select
class ProjectForm(ModelForm):
    class Meta:
        model = Project
        fields = ('title', 'date_created', 'path', 'color_mode')
        colors = (
                   ('mixed', 'Mixed (i.e. some color or grayscale, some black and white)'),
                   ('color_grayscale', 'Color / Grayscale'),
                   ('black_and_white', 'Black and White only'),
                   )
        widgets = {'color_mode': Select(choices=colors)}
Run Code Online (Sandbox Code Playgroud)

在阅读https://docs.djangoproject.com/en/dev/topics/forms/modelforms/#overriding-the-default-field-types-or-widgets之后,由于该示例仅讨论TextArea和小部件讨论,因此我感到迷茫.似乎排除了ModelForm.

谢谢!

django django-models

30
推荐指数
1
解决办法
3万
查看次数

使用get_object_or_404获取数据库值

我正在get_object_or_404尝试从我的数据库中获取值列表.我正在尝试过滤get_object_or_404状态变量的函数,只捕获与之关联的值disease_id.下面的代码不起作用(它抓取状态表中的所有值.任何想法?

views.py

def option(request, disease_id, state_id):

    state = get_object_or_404(State, relevantdisease=disease_id)
    disease = get_object_or_404(Disease, pk=disease_id)

    context = {'state': state, 'disease':disease }
    return render(request, "option.html", context)
Run Code Online (Sandbox Code Playgroud)

models.py

class State(models.Model):
    state = models.CharField(max_length=300, verbose_name='state')
    relevantdisease = models.ForeignKey(Disease, verbose_name="disease")
Run Code Online (Sandbox Code Playgroud)

django

26
推荐指数
1
解决办法
4万
查看次数

如果存在唯一键,则SQLAlchemy更新

我上课了:

class Tag(Base, TimestampMixin):
    """Tags"""
    __tablename__ = 'tags'
    __table_args__ = {'mysql_engine' : 'InnoDB', 'mysql_charset' : 'utf8' }

    id = Column(Integer(11), autoincrement = True, primary_key = True)
    tag = Column(String(32), nullable = False, unique = True)
    cnt = Column(Integer(11), index = True, nullable = False, default = 1)

    def __init__(self, tag):
        t = session.query(Tag).filter_by(tag=tag).first()
        if t:
            self.cnt = t.cnt+1
            self.tag = t.tag
        else:
            self.tag = tag

    def __repr__(self):
        return "<Tag('%s')>" % (self.tag, )

    def __unicode__(self):
        return "%s" % (self.tag, )
Run Code Online (Sandbox Code Playgroud)

添加标签时: …

python orm sqlalchemy declarative

18
推荐指数
2
解决办法
2万
查看次数

Django QuerySet按ID自定义排序

给定一个id/pks列表,我想生成一个QuerySet由列表中的索引排序的对象.

通常我会先说:

pk_list = [5, 9, 2, 14]
queryset = MyModel.objects.filter(pk__in=pk_list)
Run Code Online (Sandbox Code Playgroud)

当然,这将返回的对象,但在模型元排序属性的顺序,我希望得到的顺序记录pk以秒pk_list.

最终结果必须是一个 QuerySet对象(不是列表),因为我希望将有序文件传递QuerySet给Django的ModelMultipleChoiceField表单字段.

python django django-queryset

15
推荐指数
3
解决办法
3522
查看次数

有一种方法可以为现有的django命令添加功能吗?

我想在启动django命令之前运行命令.

例如:

$ python manage.py runserver
Validating models...

0 errors found
Django version 1.3, using settings 'creat1va.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
(started some command in the background)
[10/Jul/2011 21:50:26] "GET / HTTP/1.1" 200 1611
[10/Jul/2011 21:50:26] "GET /assets/css/master.css HTTP/1.1" 404 1783
[10/Jul/2011 21:50:26] "GET /assets/images/misc/logo.png HTTP/1.1" 404 1801
[10/Jul/2011 21:50:26] "GET /assets/images/icons/bo.gif HTTP/1.1" 404 1798
[10/Jul/2011 21:50:28] (My background process) "Some nice Feedback"
Run Code Online (Sandbox Code Playgroud)

主要思想是启动后台进程,并输出日志记录.

有没有办法实现这一点,没有黑客django来源?

python django

15
推荐指数
2
解决办法
3499
查看次数

django rest框架更改主键使用unqiue字段

我有一个被称为模型的模型GameProfile,它与User模型是一对一的关系.我用过HyperlinkedModelSerializer我所有的设计.

对于GameProfile,用户字段被认为是查询的主键,它是唯一的但我没有将其设置为主键.有没有办法将django serializer的默认行为更改为指向user__id主键,并始终使用它来在详细信息视图中检索配置文件?

class GameProfileSerializer(serializers.HyperlinkedModelSerializer):
    """ 
    """
    user_pk = serializers.Field(source='user.id')

    class Meta:
        model = GameProfile


class GameProfileViewSet(viewsets.ModelViewSet):
    """
    """
    queryset = GameProfile.objects.all()
    serializer_class = GameProfileSerializer

    def get_queryset(self):
        """ get_queryset
        """
        queryset = super(GameProfileViewSet, self).get_queryset()
        if not queryset.exists():
            raise Http404
        if self.request.user.is_authenticated() and not self.request.user.is_superuser:
            return queryset.filter(user=self.request.user)
        return queryset
Run Code Online (Sandbox Code Playgroud)

请指教,提前谢谢:)

django django-rest-framework

15
推荐指数
2
解决办法
1万
查看次数