小编Con*_*ion的帖子

如何动态组合和访问Python中的类属性?

我有一个Python类,其属性名为:date1,date2,date3等.

在运行时,我有一个变量i,它是一个整数.

我想要做的是根据i的值在运行时访问适当的日期属性.

例如,

如果我== 1,我想访问myobject.date1

如果我== 2,我想访问myobject.date2

我想为类而不是属性做类似的事情.

例如,我有一堆类:MyClass1,MyClass2,MyClass3等.我有一个变量k.

如果k == 1,我想实例化一个新的MyClass1实例

如果k == 2,我想实例化一个新的MyClass2实例

我怎样才能做到这一点?

编辑

我希望避免使用巨大的if-then-else语句来选择合适的属性/类.

有没有办法在Python中使用变量的值动态编写类名?

python

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

是否可以在Django应用程序中进行异步/并行数据库查询?

我的网页需要10到20个数据库查询才能获得所有必需的数据.

通常在发出查询后,Django线程/进程被阻塞,等待结果返回,然后它将继续执行,直到它到达下一个查询.

有没有办法异步发出所有查询,以便它们可以由数据库服务器并行处理?

我正在使用MySQL,但也希望了解其他数据库的解决方案.例如,我听说Postgresql有一个异步客户端库 - 在这种情况下如何使用它?

mysql django postgresql asynchronous nonblocking

19
推荐指数
1
解决办法
4118
查看次数

Django:ORM是否支持SQL"IN"运算符?

Django ORM是否支持SQL IN运算符?就像是:

SELECT *
FROM user
WHERE id IN (1, 5, 34, 567, 229)
Run Code Online (Sandbox Code Playgroud)

如何使用Django ORM进行类似的查询?

谢谢.

django django-orm django-queryset

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

Django:如何以线程安全的方式执行get_or_create()?

在我的Django应用程序中,我经常需要做类似的事情get_or_create().例如,

用户提交标签.需要查看该标记是否已存在于数据库中.如果没有,请为其创建新记录.如果是,只需更新现有记录.

但是看看get_or_create()它的文档似乎不是线程安全的.线程A检查并查找记录X不存在.然后线程B检查并发现记录X不存在.现在,线程A和线程B都将创建一个新的记录X.

这一定是非常普遍的情况.我如何以线程安全的方式处理它?

python database django concurrency thread-safety

19
推荐指数
2
解决办法
6575
查看次数

Django:使用Django ORM实现JOIN?

我有一个用Django构建的Q&A类型的网站,其中包含以下模型:

class Question(models.Model):
    title = models.CharField(max_length=70)
    details = models.TextField()

class Answer(models.Model):
    question_id = IntegerField()
    details = models.TextField()
Run Code Online (Sandbox Code Playgroud)

我需要显示一个特定的问题及其答案.通常我需要2个查询来做到这一点:

Question.objects.get(id=1)
Answer.objects.get(question_id=1)[:10]
Run Code Online (Sandbox Code Playgroud)

我希望使用一个查询检索所有内容.在MySQL中,它将是:

SELECT *
FROM Question JOIN Answer ON Question.id=Answer.question_id
WHERE Question.id=1
LIMIT 10
Run Code Online (Sandbox Code Playgroud)

无论如何我可以通过Django的ORM来做到这一点吗?请问extra()在这种情况下帮助吗?

django join django-models django-orm django-queryset

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

Django:为什么Django模型字段的类属性?

在Django中,模型的字段被定义为类属性.

那么这意味着模型的所有实例都会为这些字段共享相同的值,不是吗?

说我有一个模特

class Tag(models.Model):
    name = models.CharField(max_length=30)
Run Code Online (Sandbox Code Playgroud)

我有一个表单,用户可以在其中提交标签.假设用户提交了2个标签:"Python"和"Django".如果我在视图中创建了2个Tag实例:

t1 = Tag(name="Python")
t2 = Tag(name="Django")
Run Code Online (Sandbox Code Playgroud)

既然name是一个类属性不应该都t1t2有相同的值name,在这种情况下,应该是"Django的"?

但实际上name行为类似于实例属性而不是类属性.你能解释一下发生了什么吗?

python django django-models

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

如何在不使用空格作为单词分隔符的语言(如中文)上进行Python split()?

我想把一个句子分成一个单词列表.

对于英语和欧洲语言,这很简单,只需使用split()

>>> "This is a sentence.".split()
['This', 'is', 'a', 'sentence.']
Run Code Online (Sandbox Code Playgroud)

但是我还需要处理不使用空格作为单词分隔符的中文等语言的句子.

>>> u"??????".split()
[u'\u8fd9\u662f\u4e00\u4e2a\u53e5\u5b50']
Run Code Online (Sandbox Code Playgroud)

显然这不起作用.

如何将这样的句子分成单词列表?

更新:

到目前为止,答案似乎表明这需要自然语言处理技术,并且中文中的单词边界是模糊的.我不确定我明白为什么.中文中的单词边界对我来说非常明确.每个中文单词/字符都有一个相应的unicode,并在屏幕上显示为单独的单词/字符.

那么模糊性来自何处.正如您在我的Python控制台输出中所看到的,Python可以告诉我的例句由5个字符组成:

? - u8fd9
? - u662f
? - u4e00
? - u4e2a
? - u53e5
? - u5b50
Run Code Online (Sandbox Code Playgroud)

所以很明显Python告诉单词/字符边界没有问题.我只需要列表中的那些单词/字符.

python string unicode nlp cjk

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

如何猴子补丁Django?

我发现这篇关于猴子修补Django的帖子:

from django.contrib.auth.models import User

User.add_to_class('openid', models.CharField(max_length=250,blank=True))

def get_user_name(self):
    if self.first_name or self.last_name:
        return self.first_name + " " + self.last_name
    return self.username

User.add_to_class("get_user_name",get_user_name)
Run Code Online (Sandbox Code Playgroud)

我知道这并不理想,最好User通过单独的模型添加字段和函数Profile.

话虽如此,我只是想了解这是如何工作的:

  1. 我会把猴子修补代码放在哪里?

  2. 代码何时运行 - 只需一次?每个Python解释器启动一次?每次请求一次?

  3. 据推测,我仍然需要更改数据库架构.所以,如果我放弃桌子User并跑了./manage.py syncdb,会syncdb"知道"已经添加了一个新字段User吗?如果不是,我如何更改架构?

python django monkeypatching django-models

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

什么是MySQL(InnoDB)最好的Linux文件系统?

我试图寻找有关MySQL InnoDB的各种文件系统的性能的基准,但找不到任何.

我的数据库工作负载是典型的基于Web的OLTP,大约90%读取,10%写入.随机IO.

在流行的文件系统中,例如ext3,ext4,xfs,jfs,Reiserfs,Reiser4等,您认为哪一个最适合MySQL?

mysql database linux filesystems benchmarking

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

如何在Python/Django中对一长串单词有效地过滤字符串?

Stackoverflow通过获取当前问题的标题并根据Google删除10,000个最常见的英语单词来实现其"相关问题"功能.然后将剩余的单词作为全文搜索提交以查找相关问题.

我想在我的Django网站上做类似的事情.对Python中的一长串单词过滤字符串(在本例中为问题标题)的最佳方法是什么?任何能让我高效做到这一点的图书馆?

python string django nlp

9
推荐指数
1
解决办法
3202
查看次数