我正在Django中编写一个项目,我发现80%的代码都在文件中models.py.这段代码令人困惑,经过一段时间后,我不再明白究竟发生了什么.
这是困扰我的:
User,但从技术上讲,它应该统一创建它们.这是一个简单的例子.起初,User模型是这样的:
class User(db.Models):
def get_present_name(self):
return self.name or 'Anonymous'
def activate(self):
self.status = 'activated'
self.save()
Run Code Online (Sandbox Code Playgroud)
随着时间的推移,它变成了这样:
class User(db.Models):
def get_present_name(self):
# property became non-deterministic in terms of database
# data is taken from another service by api
return remote_api.request_user_name(self.uid) or 'Anonymous'
def activate(self):
# method now has a side effect (send message to user)
self.status = 'activated'
self.save()
send_mail('Your account is activated!', '…', [self.email])
Run Code Online (Sandbox Code Playgroud)
我想要的是在我的代码中分离实体:
实现可以在Django中应用的这种方法有哪些好的做法?
python django model-view-controller business-logic-layer data-access-layer
经常在JavaScript库中看到这样的代码:
setTimeout(function() {
...
}, 0);
Run Code Online (Sandbox Code Playgroud)
我想知道为什么要使用这样的包装代码.
我在python中的类中列表有问题.这是我的代码:
class Residues:
def setdata(self, name):
self.name = name
self.atoms = list()
a = atom
C = Residues()
C.atoms.append(a)
Run Code Online (Sandbox Code Playgroud)
像这样的东西.我收到一个错误说:
AttributeError: Residues instance has no attribute 'atoms'
Run Code Online (Sandbox Code Playgroud) 例如,我有3个表:user,group和permission,和他们之间有两个many2many关系:user_groups和group_permissions.
我需要选择给定用户的所有权限,不重复.每次遇到类似问题时,我都无法确定哪个版本的查询更好:
SELECT permisson_id FROM group_permission WHERE EXISTS(
SELECT 1 FROM user_groups
WHERE user_groups.user_id = 42
AND user_groups.group_id = group_permission.group_id
)
SELECT DISTINCT permisson_id FROM group_permission
INNER JOIN user_groups ON user_groups.user_id = 42
AND user_groups.group_id = group_permission.group_id
Run Code Online (Sandbox Code Playgroud)
我有足够的经验可以根据解释得出结论.第一个查询有子查询,但我的经验表明第一个查询更快.也许是因为结果中有大量过滤后的权限.
在这个情况下,你会怎么做?为什么?谢谢!
我不确定我想做什么是可能的:我正在尝试在父模板中获取一个块,以便由父模板的子模板中包含的文件填充.
解释这个的最好方法是测试用例:
文件t1.djhtml:
<root>
<block t3_container>
{% block t3 %}This should be 'CONTENT'{% endblock %}
</block t3_container>
<block t2_container>
{% block t2 %}{% endblock %}
</block t2_container>
</root>
Run Code Online (Sandbox Code Playgroud)
文件t2.djhtml:
{% extends 't1.djhtml' %}
{% block t2 %}
<block t2>
{%- include 't3.djhtml' with context %}
</block t2>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
文件t3.djhtml:
{% block t3 %}
<block t3>
CONTENT
</block t3>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
文件test.py:
from jinja2 import Environment, FileSystemLoader
env = Environment(loader=FileSystemLoader('')) …Run Code Online (Sandbox Code Playgroud) 我有一个带有弹出切片器的仪表板,但是一旦我关闭弹出窗口就无法分辨选择了哪些变量,所以我想在图表上方显示一行,包含所有参数的路径类型我在切片机盒中选择.
我试图引用他们在一个HTML布局位置,如:
${size},${type},${line}和${service},但它显示为书面文本.没有解析变量.
我还创建了一个自由形式组件来使用Javascript,但我看不到任何数据,我无法弄清楚要使用的功能.
我有一个Django视图,我正在尝试优化.它显示页面上的父对象列表及其子对象.子模型将外键返回到父项,因此select_related似乎不适用.
class Parent(models.Model):
name = models.CharField(max_length=31)
class Child(models.Model):
name = models.CharField(max_length=31)
parent = models.ForeignKey(Parent)
Run Code Online (Sandbox Code Playgroud)
一个简单的实现使用n + 1个查询,其中n是父对象的数量,即.一个查询用于获取父列表,然后一个查询用于获取每个父项的子项.
我写了一个视图,在两个查询中完成工作 - 一个用于获取父对象,另一个用于获取相关的子对象,然后是一些Python(我太尴尬了,无法在此处发布)将它们全部重新组合在一起.
一旦我发现自己导入标准库的collections模块,我意识到我可能做错了.可能有一个更简单的方法,但我缺乏Django经验来找到它.任何指针将非常感谢!
从blobstore中删除所有blob的最佳方法是什么?我正在使用Python.
我有很多blob,我想删除它们.我目前正在做以下事情:
class deleteBlobs(webapp.RequestHandler):
def get(self):
all = blobstore.BlobInfo.all();
more = (all.count()>0)
blobstore.delete(all);
if more:
taskqueue.add(url='/deleteBlobs',method='GET');
Run Code Online (Sandbox Code Playgroud)
这似乎是使用大量的CPU和(据我所知)没有任何用处.
我正在django/webfaction上创建一个博客.目前我的主页显示所有帖子的所有内容.我想调整它以显示每个帖子中只有几行,每个帖子以"阅读更多"链接结尾.怎么做到这一点?我是django和python的新手.请帮助我.
home.html中的代码:
Run Code Online (Sandbox Code Playgroud){% block content %} {% for post in object_list %} <h2>{{ post.title }} </h2> <div class = "post_meta"> on {{ post.created}} </div> <div class = "post_body"> {{ post.body|safe|linebreaks}} </div> {% endfor %} {% endblock %}
提前致谢.
有这个代码:
>>> class Foo:
... zope.interface.implements(IFoo)
...
... def __init__(self, x=None):
... self.x = x
...
... def bar(self, q, r=None):
... return q, r, self.x
...
... def __repr__(self):
... return "Foo(%s)" % self.x
Run Code Online (Sandbox Code Playgroud)
Obviously, the call of zope.interface.implements in some way alters the properties and behavior of the class Foo.
How does this happen? How do I use this approach in my code?
Example code is the part of zope.interface module.
借款检查员打败了我:
use std::collections::HashMap;
struct Cache {
cache: Vec<HashMap<String, String>>,
}
impl Cache {
fn get(&mut self, index: usize, key: String) -> String {
let mut cache = &mut self.cache[index];
match cache.get(&key) {
Some(r) => {
return r.clone();
}
None => {
let r = "foo".to_string(); // something smart here
cache.insert(key, r.clone());
return r;
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我得到了什么:
error[E0502]: cannot borrow `*cache` as mutable because it is also borrowed as immutable
--> src/main.rs:16:17
|
10 | match cache.get(&key) {
| …Run Code Online (Sandbox Code Playgroud) python ×7
django ×3
blobstore ×1
class ×1
dashboard ×1
distinct ×1
explain ×1
html ×1
inner-join ×1
javascript ×1
jinja2 ×1
mysql ×1
parameters ×1
pentaho ×1
performance ×1
rust ×1
settimeout ×1
task-queue ×1
zope ×1