小编Cau*_*ons的帖子

Python str vs unicode类型

使用Python 2.7,我想知道使用类型unicode而不是str因为它们两者似乎能够保存Unicode字符串的真正优势.除了能够unicode使用转义字符串在字符串中设置Unicode代码之外,还有什么特殊原因\吗?:

执行模块:

# -*- coding: utf-8 -*-

a = 'á'
ua = u'á'
print a, ua
Run Code Online (Sandbox Code Playgroud)

结果:á,á

编辑:

使用Python shell进行更多测试:

>>> a = 'á'
>>> a
'\xc3\xa1'
>>> ua = u'á'
>>> ua
u'\xe1'
>>> ua.encode('utf8')
'\xc3\xa1'
>>> ua.encode('latin1')
'\xe1'
>>> ua
u'\xe1'
Run Code Online (Sandbox Code Playgroud)

因此,unicode字符串似乎使用latin1而不是编码utf-8,原始字符串使用utf-8?我现在更加困惑了!:S

python string unicode

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

在Android中使用DigestUtils找不到的方法

我正在尝试使用JDK 1.6在Android 2.3.1中使用库DigestUtils,但是在执行应用程序时出现以下错误:

Could not find method org.apache.commons.codec.binary.Hex.encodeHexString, referenced from method org.apache.commons.codec.digest.DigestUtils.shaHex

在这里你有堆栈跟踪:

02-03 10:25:45.153: I/dalvikvm(1230): Could not find method org.apache.commons.codec.binary.Hex.encodeHexString, referenced from method org.apache.commons.codec.digest.DigestUtils.shaHex
02-03 10:25:45.153: W/dalvikvm(1230): VFY: unable to resolve static method 329: Lorg/apache/commons/codec/binary/Hex;.encodeHexString ([B)Ljava/lang/String;
02-03 10:25:45.153: D/dalvikvm(1230): VFY: replacing opcode 0x71 at 0x0004
02-03 10:25:45.153: D/dalvikvm(1230): VFY: dead code 0x0007-0008 in Lorg/apache/commons/codec/digest/DigestUtils;.shaHex ([B)Ljava/lang/String;
02-03 10:25:45.163: D/AndroidRuntime(1230): Shutting down VM
02-03 10:25:45.163: W/dalvikvm(1230): threadid=1: thread exiting with uncaught exception (group=0x40015560)
02-03 10:25:45.173: E/AndroidRuntime(1230): FATAL EXCEPTION: main …
Run Code Online (Sandbox Code Playgroud)

apache encryption android sha digest

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

空白行Python PEP8在类定义中的最佳实践

我总是在课程定义后留下一个空行,代码似乎符合PEP8,因为没有提出警告.我之所以这样做是因为我发现它比一起编写更具可读性.

class Area(BaseModel):

    name = models.CharField(_("Name"), max_length=30)
    slug = models.SlugField(_("Slug"), max_length=30, unique=True)

    class Meta(BaseModel.Meta):

        verbose_name = _("Area")
        verbose_name_plural = _("Areas")
        ordering = [
            "name",
        ]
Run Code Online (Sandbox Code Playgroud)

但是,当我读PEP8代码兼容时.这个额外的空间永远不存在,这段代码看起来像这样:

class Area(BaseModel):
    name = models.CharField(_("Name"), max_length=30)
    slug = models.SlugField(_("Slug"), max_length=30, unique=True)

    class Meta(BaseModel.Meta):
        verbose_name = _("Area")
        verbose_name_plural = _("Areas")
        ordering = [
            "name",
        ]
Run Code Online (Sandbox Code Playgroud)

我的问题是:这是一个"糟糕的做法",我正在做什么.我应该在Python中避免这些额外的空白行吗?

python pep8

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

如何链接Django查询集保留个别订单

我想在Django中追加或链接几个Queryset,保留每个Queryset的顺序(不是结果).我正在使用第三方库对结果进行分页,它只接受列表或查询集.我试过这些选项:

Queryset join:不保留单个查询集中的排序,因此我不能使用它.

result = queryset_1 | queryset_2
Run Code Online (Sandbox Code Playgroud)

使用itertools:调用list()链对象实际上会评估查询集,这可能会导致很多开销.不是吗?

result = list(itertools.chain(queryset_1, queryset_2))
Run Code Online (Sandbox Code Playgroud)

你觉得我该怎么办?

python django django-queryset

14
推荐指数
3
解决办法
4490
查看次数

如何在ckeditor中配置简单链接和图像附加?

我正在使用django-ckeditor,我对链接和图像有一些问题.

关于链接:

添加链接界面

在此界面中,您可以看到最终用户无法使用它,因为它太复杂并且可能导致错误和安全问题,因为该按钮Browse Server确实允许用户浏览上载的内容.我想要的是非常简单的东西:只是一个输入文本,它自动附加http(如果没有用户输入),并在新窗口中打开链接,即目标_blank.

我试过用以下代码编辑config.js.这已删除了UploadAdvanced选项卡,从Info选项卡中删除了不必要的小部件并_blank默认设置了目标.但是Target选项卡仍然存在,用户可以更改它,因为我显然无法删除此选项卡,否则默认目标被忽略我坚持这一点.那么,我如何设置目标_blank并删除Target选项卡呢?有没有办法隐藏此选项卡,但不能删除它?

CKEDITOR.on('dialogDefinition', function(ev) {
    // Take the dialog name and its definition from the event data.
    var dialogName = ev.data.name;
    var dialogDefinition = ev.data.definition;

    // Check if the definition is from the dialog we're
    // interested in (the 'link' dialog).
    if (dialogName == 'link') {
        // Remove the 'Target', 'Upload' and 'Advanced' tabs from the 'Link' …
Run Code Online (Sandbox Code Playgroud)

django image hyperlink ckeditor

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

Python包名称可以以数字开头吗?

我知道从一个数字开始命名一个Python模块是一个坏主意,正如另一个问题所述,但我想知道在Python包中是否合法,而不是模块(aka文件).

例如.我想一个Django网站与一些外部API的整合,我想创建一个"第三者"包,包含文件对每个供应商,我不知道,如果调用它3rd_party会成为一个头痛或我应该命名third_party相反,避免问题.

注意:我不知道它是否重要,但我使用的是Python 2.7

python

10
推荐指数
2
解决办法
4964
查看次数

在Eclipse中为PEP8设置最大行长度问题

Eclipse JunoUbuntu x64机器上使用.

我想改变PyDevPEP8 的默认最大线路长度,但我不能!

我转到Window/Preferences/PyDev/Editor/Code Analysis/pep8.py并设置以下参数:

--max-line-length=100
Run Code Online (Sandbox Code Playgroud)

我做错了什么?设置完成后,我已经完成了代码分析,但是行长似乎被忽略了,我不想这样做.

python eclipse pep8 pydev

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

安装后,主管无法识别服务问题

如果我从apt-get我获得版本3.0b2-1 安装主管,如果我运行sudo service supervisor status我得到is running(较旧的测试版工作正常)

目录在/etc/supervisor与创建supervisord.conf文件内部和空目录conf.d

但是,尝试使用pip或easy_install安装最新版本(3.1.1)并运行service supervisor status我得到supervisor: unrecognized service(最新版本无效)

没有创建配置文件,/etc所以我echo_supervisord_conf > /etc/supervisord.confdocs上说过.

我无法运行服务启动/停止/重启/状态......我不知道主管是否真的会工作.这里有什么想法?

注意:我使用的是Ubuntu 14.04 x64机器.

python ubuntu supervisord

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

如何在Django中使用经过身份验证的用户执行AJAX请求?

我需要使用AJAX与已经过身份验证的用户使用Django进行HTTP调用.

有没有标准的简单方法来做到这一点?我已经阅读了其他问题,但使用了不同的技术.

我正在使用HTTP(不是HTTPS)并使用像django-tastypie这样的第三方应用程序实现这种独特的"简单"目的,这样做会有些过分,不是吗?

django jquery

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

如何忽略Git合并中的文件?

我正在建立一个有两个分支的(Django)网站:masterdev.

master是生产版本,不应该直接在这里完成任何工作.dev一旦被认为是稳定的,所有的变化应该来自合并分支.

dev正如您可能猜到的那样,是开发分支,所有更改都在这里(和子分支)进行.

在服务器中我有两个工作的网站,生产一个(使用master分支)和另一个私有开发,dev子域使用dev分支.

问题是所有配置文件,静态文件(图像等)都在控件版本内,以便能够轻松地将它们推送到服务器.但是,如果这些文件(静态,配置...)被修改dev为只在服务器中调试然后我需要与主服务器合并... 我怎样才能设置一些文件和目录在合并开发时被忽略主?

我一直在寻找,我已经发现了一些相关的问题,但他们告诉你使用.gitattributesmerge=ours.但是,这种方法有一个很大的警告:只有在两个分支中修改文件时才应用策略,但这不是我的情况.

关于我该怎么做的任何提示?

git branching-and-merging

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