小编Dav*_* D.的帖子

有没有一种在Python中编写多行字符串的简洁方法?

这听起来像是一个初学者的问题,但我从来没有成功地在Python中以干净的方式编写长字符串.

以下是我列出的4种方法.他们似乎都不对我好.

def useless_func():
    # WRONG WAY A : string_A displays well but breaks the 80 char max PEP 8 recommandation
    string_A = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua."

    # WRONG WAY B : string_B will create unwanted spaces between word 'sed' and 'do' when printed
    string_B = "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed\
        do eiusmod tempor incididunt ut labore et dolore magna aliqua." …
Run Code Online (Sandbox Code Playgroud)

python python-2.7

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

从Python2升级到Python3时出现字符串/字节

我尝试使用Python 3以这种方式生成base64 img的QRCode:

def gen_qrcode(data):
    import base64
    import io
    import qrcode

    qrc = qrcode.QRCode(version=1,
                        error_correction=qrcode.constants.ERROR_CORRECT_Q,
                        box_size=8,
                        border=4)
    qrc.add_data(data)
    qrc.make(fit=True)
    img = qrc.make_image()

    output = io.StringIO()
    img.save(output, 'PNG') # This line is now a problem with Python 3
    output.seek(0)
    output_s = output.read()
    b64 = base64.b64encode(output_s)
    img_tag = '<img src="data:image/png;base64,{0}">'.format(b64)

    return img_tag
Run Code Online (Sandbox Code Playgroud)

它适用于Python 2(唯一更改的代码是由IO替换的StringIO)但现在我有一个错误:

TypeError at /qrcode
string argument expected, got 'bytes'
-> img.save(output, 'PNG')
Run Code Online (Sandbox Code Playgroud)

任何的想法?谢谢.

python qr-code python-imaging-library python-3.x pillow

3
推荐指数
1
解决办法
957
查看次数

为什么添加自定义SASS变量在Ionic中不起作用?

我使用-s选项设置了一个新的离子项目来启用SASS.

这是我的/myproject/scss.ionic.app.scss的一部分:

...
$positive:                        #2a8000 !default;
$button-font-size:                30px !default;

// Include all of Ionic
@import "www/lib/ionic/scss/ionic";
Run Code Online (Sandbox Code Playgroud)

保存这个scss文件时,我可以在shell中看到启动了sass并重新构建了css:

[00:18:18] Starting 'sass'...
CSS changed:  www/css/ionic.app.css
[00:18:18] Finished 'sass' after 330 ms
CSS changed:  www/css/ionic.app.min.css
Run Code Online (Sandbox Code Playgroud)

但是,新的css文件似乎完全相同,无论我放入scss文件.

你能解释一下原因吗?非常感谢.

sass ionic-framework

3
推荐指数
1
解决办法
8529
查看次数

如何在API和各种客户端之间创建全双工通信?

在我的网站上,我想创建一个公共API,允许客户(未知的人)与我的服务进行交互.在这种情况下,经典的REST API可以很好地工作.

但是,我也需要能够向客户发送事件.这些事件与客户端HTTP请求无关.我看到"webhooks"是解决这个问题的一种方法.如果我理解,使用webhooks,我的服务会将HTTP POST请求发送到客户端指定的URL,并在此请求中包含事件数据.

我认为websocket也可以用作满足这种全双工通信需求的解决方案.

我想知道的是,客户实施与我的服务交谈最简单的方法是什么?简洁是这里的关键点.困难的是我的客户可以使用各种技术(带有HTTP服务器的完整网站,没有服务器的iOS/Android应用程序等)

如果我使用REST API + webhooks,对客户有什么影响?WebSockets的?等等?如何做出选择?

希望它清楚(但不确定).谢谢 :)

api web-services http websocket

3
推荐指数
1
解决办法
1577
查看次数

Django/jQuery:处理模板继承和JS文件加载

在Django中,如何在实际使用之前处理需要等待JS文件加载的事实?

让我们看看这个例子的问题:

base.html文件

<!DOCTYPE html>
<html>

<head>...</head>
<body>
    {% include "content.html" %}

    <script src="jquery.js"></script>
    <script src="awesome-script.js"></script>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

content.html

<script>
    $(document).ready(function(){
        ...
    });
</script>
Run Code Online (Sandbox Code Playgroud)

这在逻辑上失败($ is undefined).我可以在调用脚本之前加载jQuery,但我试图避免在我的主要内容之前加载JS文件以尽可能快地加载网站.

那么,我该怎么办?谢谢.

javascript python django jquery django-templates

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

如何将包含dict列表的字符串转换为Python对象?

ugly = "[{'ride': 1, 'pickup_time': datetime(2016, 3, 17, 15, 36, 35, 976202)},
         {'ride': 2, 'pickup_time': datetime.datetime(2016, 3, 17, 15, 41, 35, 976202)}]"
# The actual variable contains a lot more dictionnaries...`
Run Code Online (Sandbox Code Playgroud)

我想将丑陋的变量转换为真正的Python对象.我试过了json.loads(),ast.literal_eval()但它只适用于一个字典.

这就是为什么在此之前,我试图将这个字符串拆分成几个字典,但该split()方法只有一个分隔符,所以看起来我需要一个REGEX才能做到这一点.

最简单的方法是什么?谢谢.

python

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

为什么在循环中浏览元组会给我字符串的第一个字符?

有人可以解释我这种行为:

REQUIRED_USER_FIELDS = ["email"]
for field in REQUIRED_USER_FIELDS:
    # field = 'email' -> OK for me, expected behaviour

REQUIRED_USER_FIELDS = ("email")
for field in REQUIRED_USER_FIELDS:
    # field = 'e' -> Why???
Run Code Online (Sandbox Code Playgroud)

谢谢

python tuples

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

在模板外格式化 Django Datetime 对象

我喜欢Django 附带的日期标签。

例外的是,我想在我的视图中格式化 DateTime 对象(因为我需要将格式化的日期字符串发送到 API,而不是在 Django 模板中显示它)。

你知道有没有办法在模板之外使用这个 Django“系统”?

同时,我尝试使用strftime Python 方法,但发现了一些缺点:

  • 它不使用与 Django 相同的格式字符,这使我的代码处理 2 种不同的处理日期格式的方法。
  • 默认情况下,它不关心 Django 语言环境并写入英文日期。

谢谢 :)

python django

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

为什么Django filter()会添加项而不是删除它们?

我对filter()方法的行为很好奇.我在文档中读到它们可以被链接.好的,让我们试试:

# Returns a Queryset of 2 objects : [<CliProfile: Sven>, <CliProfile: David>]
res = SomeClass.objects.all()

# Returns a Queryset of 3 objects : [<CliProfile: Sven>, <CliProfile: Sven>, <CliProfile: David>]
res2 = res.filter(some_attr__gte=a_datetime_object) 
Run Code Online (Sandbox Code Playgroud)

这怎么可能?如果初始查询集包含2个对象,filter()方法如何使此查询集增长?

python django

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

在Django Rest Framework验证方法中添加字段错误?

在Django Rest Framework(和Django)中,传统上我们检查validate_<field>方法中的字段,并在方法中进行更多的全局检查validate.

但是,请查看以下代码段:

def validate(self, data):
    # ....
    try:
        customer.activate(data['signup_code'], data['raw_password'])
    except BadCodeProvided:
        raise ValidationError(MSG_WRONG_ACTIVATION_CODE)
    except SomeOtherException:
        raise ValidationError(SOME_OTHER_MESSAGE)
Run Code Online (Sandbox Code Playgroud)

在这里,我被迫使用validate方法,因为我使用2个字段进行验证(signup_code和raw_password).但是,如果BadCodeProvided Exception中发生错误,我知道它与signup_code字段(而不是raw_password字段)有关,因为此处引发了异常.

在上面的代码段中,thiw将创建一个"non_field_error".问题:DRF中是否存在引发相同错误但与"signup_code"字段相关的方法?(就像它将在一种validate_signup_code方法中完成).

谢谢

python django

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