小编Fiv*_*ver的帖子

用于重命名模型和关系字段的Django迁移策略

我打算在现有的Django项目中重命名几个模型,其中有许多其他模型与我想要重命名的模型有外键关系.我很确定这需要多次迁移,但我不确定具体的程序.

假设我开始在Django应用程序中使用以下模型myapp:

class Foo(models.Model):
    name = models.CharField(unique=True, max_length=32)
    description = models.TextField(null=True, blank=True)


class AnotherModel(models.Model):
    foo = models.ForeignKey(Foo)
    is_awesome = models.BooleanField()


class YetAnotherModel(models.Model):
    foo = models.ForeignKey(Foo)
    is_ridonkulous = models.BooleanField()
Run Code Online (Sandbox Code Playgroud)

我想重命名Foo模型,因为名称并没有真正意义,并且导致代码混乱,并且Bar会使名称更加清晰.

从我在Django开发文档中读到的内容,我假设以下迁移策略:

步骤1

修改models.py:

class Bar(models.Model):  # <-- changed model name
    name = models.CharField(unique=True, max_length=32)
    description = models.TextField(null=True, blank=True)


class AnotherModel(models.Model):
    foo = models.ForeignKey(Bar)  # <-- changed relation, but not field name
    is_awesome = models.BooleanField()


class YetAnotherModel(models.Model):
    foo = models.ForeignKey(Bar)  # <-- changed relation, …
Run Code Online (Sandbox Code Playgroud)

python django django-migrations

133
推荐指数
8
解决办法
6万
查看次数

如何在django-rest-framework查询集响应中添加注释数据?

我正在为QuerySet中的每个项生成聚合:

def get_queryset(self):
    from django.db.models import Count
    queryset = Book.objects.annotate(Count('authors'))
    return queryset
Run Code Online (Sandbox Code Playgroud)

但我没有得到JSON响应中的计数.

先感谢您.

python django django-rest-framework

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

在Kivy中更改Button的背景颜色

我是Kivy的新手,无法指定Button的背景颜色.这是我的简单例子:

# custombutton.py

from kivy.app import App
from kivy.uix.widget import Widget


class MyWidget(Widget):
    pass


class CustomButtonApp(App):
    def build(self):
        return MyWidget()


if __name__ == '__main__':
    CustomButtonApp().run()
Run Code Online (Sandbox Code Playgroud)

以及随附的kv文件custombutton.kv:

#:kivy 1.7.2

<MyWidget>:
    canvas:
        Color:
            rgb: (0.93, 0.93, 0.93)
        Rectangle:
            pos: self.pos
            size: self.size

    Button:
        center: self.parent.center
        font_size: 14
        height: 28
        background_color: (1.0, 0.0, 0.0, 1.0)
        text: "I'm a Button"
Run Code Online (Sandbox Code Playgroud)

我确定我错过了一些明显的东西,但是我现在已经乱了一个多小时而且无处可去.按钮似乎有一丝深红色:

在此输入图像描述

这不是在Kivy中为Button指定背景颜色的方法吗?

谢谢!

python kivy

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

正则表达式以查找字符串中的任何数字

重新编号是什么?就像我正在搜索字符串中的任何数字,正面或负面.我一直在使用\ d +但是找不到0或-1

python regex

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

scipy dendrogram to json for d3.js tree visualization

我试图将scipy层次聚类的结果转换为json,以便在d3.js中显示这里的一个例子

以下代码生成具有6个分支的树形图.

import pandas as pd 
import scipy.spatial
import scipy.cluster

d = {'employee' : ['A', 'B', 'C', 'D', 'E', 'F'],
 'skillX': [2,8,3,6,8,10],
 'skillY': [8,15,6,9,7,10]}

d1 = pd.DataFrame(d)

distMat = xPairWiseDist = scipy.spatial.distance.pdist(np.array(d1[['skillX', 'skillY']]), 'euclidean')
clusters = scipy.cluster.hierarchy.linkage(distMat, method='single')
dendo  = scipy.cluster.hierarchy.dendrogram(clusters, labels = list(d1.employee), orientation = 'right')

dendo
Run Code Online (Sandbox Code Playgroud)

我的问题 如何以d3.js理解的格式表示json文件中的数据

{'name': 'Root1’, 
      'children':[{'name' : 'B'},
                  {'name': 'E-D-F-C-A',
                           'children' : [{'name': 'C-A',
                                         'children' : {'name': 'A'}, 
                                                      {'name' : 'C'}]
                                                 }
                   }
                   ]
}
Run Code Online (Sandbox Code Playgroud)

令人尴尬的事实是,我不知道我是否可以从树形图连接矩阵中提取这些信息以及如何提取 …

json scipy d3.js

11
推荐指数
1
解决办法
3354
查看次数

如何为Python函数编写帮助/描述文本

我最近开始使用Python编程.我必须编写许多函数,并且想知道如何合并一个帮助或描述文本,以便在调用函数时它出现在spyder的对象检查器中.在MatLab中,这通过将注释文本放在函数文件的开头来工作.Python中是否有类似的方法(使用Spyder)?

function python-2.7 spyder

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

如何使用Django Rest APi上传文件

有人可以帮助我如何在django rest api中使用POST方法上传文件,例如当我启动时

curl -X POST 127.0.0.1:8000/api/v1/assets/ -d '{"name" = "my image   ","source"="/root/images/my_image2.jpg"}' -H "Content-Type: application/json"
Run Code Online (Sandbox Code Playgroud)

我想上传my_image2.jpg

serializers.py:

from django.forms import widgets
from rest_framework import serializers
from .models import Asset

class AssetSerializer(serializers.ModelSerializer):
    class Meta:
        model = Asset
Run Code Online (Sandbox Code Playgroud)

views.py:

from .serializers import AssetSerializer
from django.http import Http404
from rest_framework.views import APIView
from rest_framework.response import Response
from rest_framework import status

from rest_framework import status
from rest_framework.decorators import api_view


class AssetAdd(APIView):


    def post(self, request, format=None):
        serializer = AssetSerializer(data=request.DATA)
        print serializer.data

        if serializer.is_valid():

            serializer.save() …
Run Code Online (Sandbox Code Playgroud)

django rest django-rest-framework

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

PyCharm - 一些不在Django项目中工作的断点

我在PyCharm看到了一些奇怪的行为.我有一个Django项目,断点在某些文件中停止工作,但在其他文件中停止工作.例如,我的应用程序的views.py中的所有断点都可以正常工作,但是同一个应用程序的models.py中的所有断点都会被忽略.

我尝试过以下但没有快乐:

  • 仔细检查断点是否已启用
  • 删除/重新添加断点
  • 关闭/重新开放项目
  • 退出并重新启动PyCharm
  • 删除我的配置并创建一个新配置

一些细节:

  • PyCharm 2.7.3
  • Python 2.7.2(在virtualenv中)
  • Django 1.5.1

我没有在配置中使用任何特殊设置.有任何想法吗?

python django breakpoints pycharm

8
推荐指数
2
解决办法
5063
查看次数

了解Tkinter Canvas的性能限制

我创建了一个简单的应用程序,使用Tkinter的Canvas小部件显示数据的散点图(参见下面的简单示例).绘制10,000个数据点后,应用程序变得非常迟缓,可以通过尝试更改窗口大小来看到.

我意识到添加到Canvas的每个项目都是一个对象,因此在某些时候可能会出现一些性能问题,但是,我预计该级别会远高于10,000个简单的椭圆形对象.此外,我可以在绘制点或与它们交互时接受一些延迟,但在绘制它们之后,为什么只是调整窗口的大小这么慢?

在阅读了使用Canvas小部件的effbot性能问题之后,似乎在调整大小期间可能会有一些不需要的连续空闲任务需要忽略:

Canvas小部件实现了直接的损坏/修复显示模型.对画布的更改以及Expose等外部事件都被视为对屏幕的"损坏".小部件维护一个脏矩形以跟踪受损区域.

当第一个损坏事件到来时,画布会注册一个空闲任务(使用after_idle),当程序返回到Tkinter主循环时,该任务用于"修复"画布.您可以通过调用update_idletasks方法强制更新.

因此,问题是,update_idletasks一旦数据被绘制,是否有任何方法可以使应用程序更具响应性?如果是这样,怎么样?

以下是最简单的工作示例.在加载后尝试调整窗口大小以查看应用程序变得多么迟钝.

更新

我最初在Mac OS X(Mavericks)中观察到了这个问题,当我调整窗口大小时,我的CPU使用量大幅增加.由Ramchandra的评论提示我在Ubuntu中测试了这个,但这似乎没有发生.也许这是一个Mac Python/Tk问题?不会是我遇到的第一个,请看我的另一个问题:

在OS X Mavericks中打破PIL中的PNG显示?

有人也可以在Windows中尝试(我无法访问Windows框)?

我可以尝试使用我自己编译的Python版本在Mac上运行,看看问题是否仍然存在.

最小的工作示例:

import Tkinter
import random

LABEL_FONT = ('Arial', 16)


class Application(Tkinter.Frame):
    def __init__(self, master, width, height):
        Tkinter.Frame.__init__(self, master)
        self.master.minsize(width=width, height=height)
        self.master.config()
        self.pack(
            anchor=Tkinter.NW,
            fill=Tkinter.NONE,
            expand=Tkinter.FALSE
        )

        self.main_frame = Tkinter.Frame(self.master)
        self.main_frame.pack(
            anchor=Tkinter.NW,
            fill=Tkinter.NONE,
            expand=Tkinter.FALSE
        )

        self.plot = Tkinter.Canvas(
            self.main_frame,
            relief=Tkinter.RAISED,
            width=512,
            height=512,
            borderwidth=1
        )
        self.plot.pack(
            anchor=Tkinter.NW,
            fill=Tkinter.NONE,
            expand=Tkinter.FALSE
        )
        self.radius = 2
        self._draw_plot()

    def _draw_plot(self):

        # Axes lines
        self.plot.create_line(75, 425, …
Run Code Online (Sandbox Code Playgroud)

python macos tkinter osx-mavericks

8
推荐指数
1
解决办法
4843
查看次数

tkinter按钮的高度和宽度

我正在尝试使用下面的代码创建一个按钮并更改高度和宽度,但实际按钮不会在物理上显示.但是,如果您将鼠标悬停在它应该是的区域上并单击它将打开新窗口.有任何想法吗?

import sys
from tkinter import *

#main menu
def mmWindow():
    mmWindow=Tk()
    mmWindow.geometry('600x600')


#first window   
mWindow= Tk()
mWindow.geometry('1920x1080+0+0')
mWindow.title('DMX512 Controller')

wtitle = Label (mWindow, text = "Pi DMX", fg = 'blue')
wtitle.place(x = 640, y = 100)

#main menu button
mmbutton = Button (mWindow, text = "Main Menu",command = mmWindow)
mmbutton.place( x=200, y = 200)
mmbutton.config(width=200, height=200)
Run Code Online (Sandbox Code Playgroud)

python tkinter button

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