我正在尝试削减我对PHP和MySQL的最后依赖.最后一个绊脚石是我前一段时间为客户设置的图片库.整个网站是围绕Django和Zine构建的,除了基于plogger的图片库.我想用Python解决方案替换plogger.要求包括:
我看了django-photologue,它似乎是构建一个画廊应用程序的良好基础.但它并不是一个真正的插入式应用程序,这正是我正在寻找的.
我必须运行一个传统的Zope2网站,并对此有一些不满.最大的问题是,它偶尔会锁定,以100%的CPU负载运行而不再响应请求.虽然这个问题不能定期重现,但是有时会有一个包含3个动态图形的页面触发它,所以我怀疑某种竞争条件会导致无限循环或陷入忙碌状态.
问题是,我还没有找到调试这个东西的方法.Zope日志中没有任何内容,系统日志中没有任何内容.我尝试了这个问题的建议来获得一个堆栈跟踪,但唯一有效的信号是SIGKILL.
是否还有另一种可能性来确定卡住的过程究竟在哪里?
我正在开发一个发布科学文章的网站,不是PDF,而是HTML.作为编辑团队的输入工具,我们将TinyMCE用于普通文本以及一些用于脚注和引用的自定义插件.但我们对TinyMCEs表格控件并不满意.除了最简单的表之外的所有内容都需要很长时间才能编写.浏览器是否有专门的表格编辑工具?
我有这个Django模型:
from django.contrib.gis.db import models
class Event(models.Model):
address = models.TextField()
point = models.PointField('coordinates', null=True, blank=True)
Run Code Online (Sandbox Code Playgroud)
当我使用MySQL同步此模型时,在创建索引时会打印此错误消息:
Failed to install index for events.Event model: (1252, 'All parts of a SPATIAL index must be NOT NULL')
Run Code Online (Sandbox Code Playgroud)
所以,不能使用null=True(假设我想拥有该索引),我还有其他可能性吗?我可以将点(0,0)定义为"空",但是我必须记住我计划使用数据的所有惯例,否则很多事件将发生在非洲大西洋西部的某个地方......
还有哪些其他可能性?
我有这个(简化的)标记:
<ul id="topnav">
<li>one</li>
<li>two</li>
<li id="last-nav">last</li>
</ul>
Run Code Online (Sandbox Code Playgroud)
和这些CSS规则:
#topnav li {
list-style-type: none;
float: left;
}
#last-nav {
float: right;
}
Run Code Online (Sandbox Code Playgroud)
令我惊讶的是,第二条规则被第一条规则推翻.如果我将选择器更改为li#last-nav,则可以.这是为什么?
(免责声明:我只在Firefox中测试过这个)
我用它lxml.objectify来轻松解析和使用XML文件.出于审计原因,我必须将派生对象与元素的原始XML代码一起保存.
root = lxml.objectify.fromstring(self.get_xml_data())
for i, elem in enumerate(root.elements):
# create new database entry based on elem
elem_obj.source_code = turn_elem_into_xml(elem)
Run Code Online (Sandbox Code Playgroud)
我该怎么turn_elem_into_xml办?
我真的不知道如何翻译GROUP BY和HAVINGDjango QuerySet.annotate和QuerySet.aggregate.我正在尝试将此SQL查询转换为ORM说话
SELECT EXTRACT(year FROM pub_date) as year, EXTRACT(month from pub_date) as month, COUNT(*) as article_count FROM articles_article GROUP BY year,month;
Run Code Online (Sandbox Code Playgroud)
输出这个:
[(2008.0, 10.0, 1L), # year, month, number of articles
(2009.0, 2.0, 1L),
(2009.0, 7.0, 1L),
(2008.0, 5.0, 3L),
(2008.0, 9.0, 1L),
(2008.0, 7.0, 1L),
(2009.0, 5.0, 1L),
(2008.0, 8.0, 1L),
(2009.0, 12.0, 2L),
(2009.0, 3.0, 1L),
(2007.0, 12.0, 1L),
(2008.0, 6.0, 1L),
(2009.0, 4.0, 2L),
(2008.0, 3.0, 1L)]
Run Code Online (Sandbox Code Playgroud)
我的Django模型:
class …Run Code Online (Sandbox Code Playgroud) 我有两个模型,作者和文章:
class Author(models.Model):
name = models.CharField('name', max_length=100)
class Article(models.Model)
title = models.CharField('title', max_length=100)
pubdate = models.DateTimeField('publication date')
authors = models.ManyToManyField(Author)
Run Code Online (Sandbox Code Playgroud)
现在我想选择所有作者并用他们各自的文章计数注释它们.这与Django的聚合物是一块蛋糕.问题是,它应该只计算已发布的文章.根据Django票务跟踪器中的票11305,这还不可能.我试图使用该CountIf票证中提到的注释,但它没有引用日期时间字符串,也没有进行所需的所有连接.
那么,除了编写自定义SQL之外,最好的解决方案是什么?
使用Django multidb,编写运行主/从基础结构的路由器相当容易.但是有可能编写一个写入多个数据库的路由器吗?我的用例是一组项目,都在同一个域上运行.为了节省用户在每个站点上注册/登录,我想同步contrib.auth和contrib.sessions表.这是可能的Django multidb还是我应该研究数据库系统的复制功能(在我的情况下是MySQL)?
请考虑以下代码:
def localize(value, localize=None):
# do something with the localize argument
Run Code Online (Sandbox Code Playgroud)
该localize变量包含是否应该遵守全局本地化设置的信息.它通过三层代码以相同的名称调用.什么是较小的邪恶,
该localize函数不使用递归,因此无法调用自身不是问题.
/ edit:更改函数名称是不可能的,因为它是公共API.唯一的摆动空间在参数名称中.