小编Mar*_*mro的帖子

导入错误:没有名为django的模块

我正在使用centos linux.

我有django的python 2.6,现在我升级到python 2.7.
Python 2.6位于/usr/lib/python2.6中.
Python 2.7位于/usr/local/lib/python2.7中.
它们都有site-packages目录,它们都包含django 1.2.

如果我运行python我得到2.7版本.
我的问题是如果尝试导入django我得到

ImportError:没有名为django的模块

我不确定我的PYTHONPATH在哪里定义,如果这是我需要改变的.任何人 ?

我最终建立了2.6 site-packages目录的符号链接.

python django centos pythonpath

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

如何将空表的MAX()视为0而不是NULL

我尝试从表中选择最大值

SELECT MAX(cid) FROM itemconfiguration;
Run Code Online (Sandbox Code Playgroud)

但是当表itemconfiguration为空时,MAX(cid)语句将被评估为NULL我需要一个数字.如何处理这个并NULL视为0?

sql oracle

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

如何使用Django的assertJSONEqual来验证返回JsonResponse的视图的响应

我正在使用Python 3.4和Django 1.7.我有一个观点回归JsonResponse.

def add_item_to_collection(request):
    #(...)
    return JsonResponse({'status':'success'})
Run Code Online (Sandbox Code Playgroud)

我想验证该视图是否使用单元测试返回正确的响应:

class AddItemToCollectionTest(TestCase):

    def test_success_when_not_added_before(self):
        response = self.client.post('/add-item-to-collection')
        self.assertEqual(response.status_code, 200)
        self.assertJSONEqual(response.content, {'status': 'success'})
Run Code Online (Sandbox Code Playgroud)

但该assertJSONEqual()行提出了一个例外:

Error
Traceback (most recent call last):
  File "E:\Projects\collecthub\app\collecthub\collecting\tests.py", line 148, in test_success_when_added_before
    self.assertJSONEqual(response.content, {'status': 'OK'})
  File "E:\Projects\collecthub\venv\lib\site-packages\django\test\testcases.py", line 675, in assertJSONEqual
    data = json.loads(raw)
  File "C:\Python34\Lib\json\__init__.py", line 312, in loads
    s.__class__.__name__))
TypeError: the JSON object must be str, not 'bytes'
Run Code Online (Sandbox Code Playgroud)

当响应包含JSON时,检查响应内容的正确方法是什么?当我尝试比较原始值时,为什么我会出现类型错误assertJSONEqual()

python django django-testing python-3.x jsonresponse

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

关闭Paramiko的登录

我使用Paramiko提供的ssh客户端来创建一个函数调用'remoteSSH'(文件名是remoteConnect.py):

import paramiko
import logging
logger = paramiko.util.logging.getLogger()
logger.setLevel(logging.WARN)

def remoteSSH(username,userpasswd):
    ....
Run Code Online (Sandbox Code Playgroud)

现在我在另一个名为getData()(getdata.py)的Python模块中调用remoteSSH函数:

from remoteConnect import *
import logging
logger2=logging.getLogger()
logger2.setLevel(logging.INFO)
Run Code Online (Sandbox Code Playgroud)

但是,调用logger2.info('ccc')也会打开导入Paramiko模块的文件中的所有INFO级别日志记录(即remoteConnect.py)

如何关闭登录remoteConnect.py以便Paramiko不会吐出所有INFO级别的消息?

python logging paramiko

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

Jenkins,指定JAVA_HOME

我使用apt-get在我的ubuntu盒子上安装了openjdk-6-jdk.

在系统信息中,jenkins告诉我Java.Home是 /usr/lib/jvm/java-6-openjdk/jre

但是当我JAVA_HOME在Jenkins中指定该目录:"configure system"时,它会返回错误消息,指出该目录看起来不像jdk目录.

它也没能拿起我的maven安装.

我错过了一些明显的东西吗

java ubuntu java-home jenkins

18
推荐指数
5
解决办法
9万
查看次数

JQuery捕获任何ajax错误

我喜欢捕捉任何ajax 401 Unauthorised异常,但不喜欢改变我所有的ajax查询.有没有办法为任何$ .ajax调用更改它(覆盖任何error处理程序)?

javascript ajax jquery

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

如何在ASP.NET核心中更改Swagger的基本URL

默认情况下,当您在ASP.NET Core项目中启用swagger时,它在url上可用:

http://localhost:<random_port>/swagger/ui
Run Code Online (Sandbox Code Playgroud)

我想使用不同的基本网址而不是/swagger/ui.我如何/在哪里配置?

我发现对于旧版本,您可以配置RootUrl但在ASP.NET Core中没有类似的方法:

.EnableSwagger(c =>
{
    c.RootUrl(req => myCustomBasePath);
});
Run Code Online (Sandbox Code Playgroud)

c# asp.net swagger asp.net-core

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

Django:记录最大元素

我有一个名为'student'的数据库表,其中有一列名为'marks'.我想要数学成绩最高的学生记录.有一个简单的解决方案,使用order_by()[0]:

Student.objects.filter(subject='Maths').order_by('-marks')[0]
Run Code Online (Sandbox Code Playgroud)

但这会对表格进行排序,然后将第一条记录提取给我.如果我的表很大,这是多余的,因为我只需要最大记录.有没有办法在没有排序的情况下获得最大值?

我想要整个对象,而不仅仅是最大值.

谢谢Anuj

django django-models

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

Django动态网址

我正在开发一个使用Django作为后端的网站,我想让客户使用管理界面添加新页面 - 所以他输入了一个页面标题,一个用于更好网址的页面别名,并选择他是否想要静态内容或基于文章的结构.

我的方法如下:我创建了一个名为app的应用程序sitemanager,它包含上面描述的页面模型,以及一个上下文处理器,它将页面添加到我的模板上下文中(用于菜单等),这样可以正常工作.

当然,我还需要将它挂钩到我的url文件中,但这里是麻烦开始的地方:我可以,感谢Django的pythonic结构,检索内部的Page模型urls.py,并相应地生成我的url模式,它确实显示,但Django似乎缓存了该文件(通常很有意义),因此只有在服务器重启后才会进行更改.这显然是不可接受的.

我的第一个想法是以某种方式使管理员应用程序重置url缓存,如果添加或删除新页面,或修改别名(并且只有那时,因为缓存通常是一件好事),但我不知道如何开始那里.

或者也许还有一个我目前没有看到的更简单的解决方案?

urls.py看起来的相关部分基本上是这样的:

from sitemanager.models import Page
static_pages = Page.objects.filter(static=True)
article_pages = Page.objects.filter(static=False)
for page in static_pages:
    pattern = r'^/'+page.alias+'/$'
    urlpatterns += patterns('',
        url(pattern, 'views.static_page',
            { 'active': page }
        )
    )
# Pretty much the same for the article pages,
# but with includes of another app
Run Code Online (Sandbox Code Playgroud)

我希望在我的头脑中删除代码时,我没有犯过太多错误!

python django django-urls

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

django sekizai {%addtoblock%}标签无法正常工作

我正在尝试实现django sekizai应用程序.它正在复制我正在添加的js文件.

基本模板:

{% load sekizai_tags %}
...
{% render_block "my_js" %}
Run Code Online (Sandbox Code Playgroud)

使用此基础的模板:

{% load sekizai_tags %}
<div id="a1" >
    {% addtoblock "my_js" %}
        <script type="text/javascript" src="{{ MEDIA_URL }}js/my_js.js"></script>
    {% endaddtoblock %}
</div>
{% addtoblock "my_js" %}
    <script type="text/javascript" src="{{ MEDIA_URL }}js/my_js.js"></script>
{% endaddtoblock %}
Run Code Online (Sandbox Code Playgroud)

现在渲染的模板已经呈现了两次.但是当我尝试在div中添加相同的脚本时,它没有重复.如果有人能够对此有所了解,我将不胜感激!

此外,当我尝试在模板标记呈现的模板中使用{%addtoblock%}时,脚本会丢失(它既不包含也不保留在该模板中).

注意:模板标签render_blockaddtoblock来自django-sekizai包.

django django-templates django-sekizai

13
推荐指数
2
解决办法
4583
查看次数