这听起来像是一个初学者的问题,但我从来没有成功地在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 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)
任何的想法?谢谢.
我使用-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文件.
你能解释一下原因吗?非常感谢.
在我的网站上,我想创建一个公共API,允许客户(未知的人)与我的服务进行交互.在这种情况下,经典的REST API可以很好地工作.
但是,我也需要能够向客户发送事件.这些事件与客户端HTTP请求无关.我看到"webhooks"是解决这个问题的一种方法.如果我理解,使用webhooks,我的服务会将HTTP POST请求发送到客户端指定的URL,并在此请求中包含事件数据.
我认为websocket也可以用作满足这种全双工通信需求的解决方案.
我想知道的是,客户实施与我的服务交谈最简单的方法是什么?简洁是这里的关键点.困难的是我的客户可以使用各种技术(带有HTTP服务器的完整网站,没有服务器的iOS/Android应用程序等)
如果我使用REST API + webhooks,对客户有什么影响?WebSockets的?等等?如何做出选择?
希望它清楚(但不确定).谢谢 :)
在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文件以尽可能快地加载网站.
那么,我该怎么办?谢谢.
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才能做到这一点.
最简单的方法是什么?谢谢.
有人可以解释我这种行为:
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)
谢谢
我对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()方法如何使此查询集增长?
在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 ×8
django ×4
api ×1
http ×1
javascript ×1
jquery ×1
pillow ×1
python-2.7 ×1
python-3.x ×1
qr-code ×1
sass ×1
tuples ×1
web-services ×1
websocket ×1