小编val*_*tev的帖子

我什么时候应该在Python中使用类?

我已经在python中编程了大约两年; 主要是数据(pandas,mpl,numpy),还有自动化脚本和小型Web应用程序.我正在努力成为一个更好的程序员并增加我的python知识,困扰我的一件事是我从未使用过类(除了为小型web应用程序复制随机烧瓶代码之外).我一般都明白它们是什么,但我似乎无法理解为什么我需要它们通过一个简单的功能.

为了增加我的问题的特异性:我写了大量的自动报告,这些报告总是涉及从多个数据源(mongo,sql,postgres,apis)中提取数据,执行大量或少量数据修改和格式化,将数据写入csv/excel/html,通过电子邮件发送出去.脚本范围从~250行到~600行.我是否有理由使用课程来完成这项工作?为什么?

python oop

124
推荐指数
4
解决办法
5万
查看次数

如果项目文件夹已存在,则强制django-admin startproject

我想在现有的文件夹中启动新的django项目,显然得到了

CommandError: '/home/user/projectfolder' already exists.
Run Code Online (Sandbox Code Playgroud)

有没有办法强制startproject命令在现有文件夹中创建项目?我在该文件夹和git文件夹中有一些重要的数据,所以我不想将它移动到某个地方,然后将其移回.

python django django-admin

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

Django JSONField是无效查找

据我所知,你不能__isnull在django native上使用查找JSONField.在互联网上,我发现这个不活跃的问题.作为可能的解决方法,我们当然可以使用这些黑客:

  1. model.objects.filter(field__contains={'key': None}),这可能不是那么灵活,因为您可能需要查询多个键或其他任何内容.

  2. model.objects.exclude(field__key=True).exclude(field__key=False),这是hacky,仅适用于布尔数据.

我希望有更好的方法((c)Raymond Hettinger)这样做.任何建议将不胜感激.现在,我将采用第一种方法

python django postgresql json django-jsonfield

7
推荐指数
1
解决办法
974
查看次数

理解比较中的可迭代类型

最近我遇到了cosmologicon的pywats,现在尝试了解迭代器的乐趣:

>>> a = 2, 1, 3
>>> sorted(a) == sorted(a)
True
>>> reversed(a) == reversed(a)
False
Run Code Online (Sandbox Code Playgroud)

好的,sorted(a)返回a listsorted(a) == sorted(a)变成两个列表比较.但reversed(a)回报reversed object.那么为什么这些反转的物体不同呢?而且id的比较让我更加困惑:

>>> id(reversed(a)) == id(reversed(a))
True
Run Code Online (Sandbox Code Playgroud)

python iterator

6
推荐指数
2
解决办法
154
查看次数

在PyCharm中为React道具禁用自动{}插入

当我在PyCharm的React组件中输入props时,它会自动插入一对花括号。像这样(光标位置为|):

<MyComp className=|
Run Code Online (Sandbox Code Playgroud)

成为:

<MyComp className={|}
Run Code Online (Sandbox Code Playgroud)

我已经搜索了设置,但是没有找到相关的设置来禁用它。是否存在?

javascript jsx pycharm webstorm reactjs

5
推荐指数
1
解决办法
58
查看次数

从 OS X 进行 ssh 时出现 UnicodeDecodeError

我的 Django 应用程序在启动时(或当我执行管理命令时)加载一些文件。当我从一台 Arch 或 Ubuntu 机器上进行 ssh 工作一切正常时,我能够成功运行任何命令和迁移。

但是当我从 OS X(我有 El Capital)进行 ssh 并尝试执行相同的操作时,我收到此错误:

UnicodeDecodeError: 'ASCII' codec can't decode byte 0xc3 in position 0: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

要打开我的文件,我使用with open(path_to_file) as f: ...

从 iterm 和终端进行 sshing 时会发生该错误。我发现原因是LC_CTYPE环境变量。它没有在我的其他 Linux 机器上设置,但在 mac 上是UTF-8这样的,所以在我 ssh 到服务器后,它被设置为相同的。我取消设置后错误已修复LC_CTYPE

所以真正的问题是发生了什么以及如何进一步避免这种情况?我可以在本地计算机中取消设置此变量,但这会产生一些负面影响吗?最好的方法是什么?

python django macos ssh locale

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

vim'a'在正常模式下的关键含义

在vim中,当您键入a普通模式时,您将进入光标后的插入模式.但是daw会删除光标caw下的单词并在光标下更改单词.我经常使用这些组合,非常有帮助.但是a在这种情况下意味着什么呢?在其他情况下它是否有用?

vim

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

将内联模型添加到Django管理站点

我有两个模型:

class Rule(models.Model):
    name = models.CharField(max_length=200)

class Channel(models.Model):

    id = models.CharField(max_length=9, primary_key=True)
    name = models.CharField(max_length=100)
    rule = models.ForeignKey(Rule, related_name='channels', blank=True)
Run Code Online (Sandbox Code Playgroud)

而且我必须能够在RuleAdmin界面内的管理站点中添加规则通道。因此,我创建了这两个管理员模型:

class ChannelAdmin(admin.TabularInline):
    model = Channel

class RuleAdmin(admin.ModelAdmin):
    model = Rule
    inlines = [ChannelAdmin]
Run Code Online (Sandbox Code Playgroud)

但是,当我启动服务器时,出现以下错误:

ERRORS:
<class 'main.admin.ChannelAdmin'>: (admin.E202) 'main.Channel' has no ForeignKey to 'main.Channel'.
Run Code Online (Sandbox Code Playgroud)

仍然在django shell中,我可以像这样进行查询

rule = Rule.objects.get(pk=1)
rule.channels.all()
Run Code Online (Sandbox Code Playgroud)

总有一些明显的东西,但我只是想不通。

python django foreign-keys django-admin

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

当我运行manage.py时如何修复这些错误

我正在将 Python Django 项目从一台服务器移动到另一台服务器。我使用的是 Debian 7,它在目标服务器上标准安装了 python 2.7.3(原始服务器也使用 Debian 7)。

我尝试移动的项目在其父文件夹中具有以下目录:-

-env
-src
Run Code Online (Sandbox Code Playgroud)

它还有一个文件

install.pip 
Run Code Online (Sandbox Code Playgroud)

现在我已经配置了 uwsgi,这些应用程序正在新的网络服务器上运行,但我想使用项目源文件夹中的manage.py。当我运行以下命令时:

 python manage.py changepassword user
Run Code Online (Sandbox Code Playgroud)

我收到以下错误

File "manage.py", line 8, in <module>
    from django.core.management import execute_from_command_line
ImportError: No module named django.core.management
Run Code Online (Sandbox Code Playgroud)

为了尝试解决这个问题,我安装了 virtualenv 和 pip 并构建了一个新的虚拟环境。然后我运行了以下命令:

pip install -r /sourcefolder/install.pip
Run Code Online (Sandbox Code Playgroud)

当我这样做时,我收到一个错误

Failed building wheel for Pillow
Run Code Online (Sandbox Code Playgroud)

我在线研究了这一点,并确定一个可能的解决方案是安装 libjpg,我使用以下命令完成

apt-get install libjpeg8-dev
Run Code Online (Sandbox Code Playgroud)

然后我再次运行pip install -r /sourcefolder/install.pip,这次它完成了,没有任何错误。

我尝试再次运行该命令:-

 python manage.py changepassword user
Run Code Online (Sandbox Code Playgroud)

我仍然收到错误,但现在它已经改变了。

  1. 如果我在虚拟环境之外运行该命令,我会收到以下错误:

    文件“manage.py”,第8行,来自django.core.management导入execute_from_command_line导入错误:没有名为django.core.management的模块

  2. 如果我从虚拟环境内部运行命令(我已使用 install.pip 要求在其中运行了 pip),我会收到此错误

为了便于阅读等,我已将长路径更改为 /sourcepath:-

Traceback (most recent …
Run Code Online (Sandbox Code Playgroud)

python django pip virtualenv django-autocomplete-light

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