我正在尝试使用枕头将png转换为jpeg.我试过几次没有成功.这两个似乎适用于像这样的小png图像.
第一个代码:
from PIL import Image
import os, sys
im = Image.open("Ba_b_do8mag_c6_big.png")
bg = Image.new("RGB", im.size, (255,255,255))
bg.paste(im,im)
bg.save("colors.jpg")
Run Code Online (Sandbox Code Playgroud)
第二个代码:
image = Image.open('Ba_b_do8mag_c6_big.png')
bg = Image.new('RGBA',image.size,(255,255,255))
bg.paste(image,(0,0),image)
bg.save("test.jpg", quality=95)
Run Code Online (Sandbox Code Playgroud)
但是,如果我尝试转换像这样的更大的图像
我越来越
Traceback(最近一次调用最后一次):
文件"png_converter.py",第14行,in
bg.paste(image,(0,0),image)文件"/usr/lib/python2.7/dist-packages/PIL/Image.py",第1328行,粘贴
self.im.paste(im,box,mask.im)ValueError:错误的透明度掩码
我究竟做错了什么?
在我的应用程序中,我需要获取过去 30 天内每天的所有交易。
在交易模型中,我有一个货币字段,如果选择的货币是英镑或美元,我想将值转换为欧元。
模型.py
class Transaction(TimeMixIn):
COMPLETED = 1
REJECTED = 2
TRANSACTION_STATUS = (
(COMPLETED, _('Completed')),
(REJECTED, _('Rejected')),
)
user = models.ForeignKey(CustomUser)
status = models.SmallIntegerField(choices=TRANSACTION_STATUS, default=COMPLETED)
amount = models.DecimalField(default=0, decimal_places=2, max_digits=7)
currency = models.CharField(max_length=3, choices=Core.CURRENCIES, default=Core.CURRENCY_EUR)
Run Code Online (Sandbox Code Playgroud)
到目前为止,这是我一直在使用的:
Transaction.objects.filter(created__gte=last_month, status=Transaction.COMPLETED)
.extra({"date": "date_trunc('day', created)"})
.values("date").annotate(amount=Sum("amount"))
Run Code Online (Sandbox Code Playgroud)
它返回一个包含日期和数量字典的查询集:
<QuerySet [{'date': datetime.datetime(2018, 6, 19, 0, 0, tzinfo=<UTC>), 'amount': Decimal('75.00')}]>
Run Code Online (Sandbox Code Playgroud)
这就是我现在尝试的:
queryset = Transaction.objects.filter(created__gte=last_month, status=Transaction.COMPLETED).extra({"date": "date_trunc('day', created)"}).values('date').annotate(
amount=Sum(Case(When(currency=Core.CURRENCY_EUR, then='amount'),
When(currency=Core.CURRENCY_USD, then=F('amount') * 0.8662),
When(currency=Core.CURRENCY_GBP, then=F('amount') * 1.1413), default=0, output_field=FloatField()))
)
Run Code Online (Sandbox Code Playgroud)
它将 gbp 或 usd …
我有一个国家/地区列表:countries = ['United States', 'Canada', 'France', 'Japan', 'Turkey', 'Germany', 'Ghana', 'Hong Kong', 'United Kingdom']
我希望获得所有不包含任何国家/地区的行.这是我的代码:
with open('file.txt') as f:
lines = f.readlines()[1:5]
a = [line.split(':') for line in lines]
for country in countries:
for line in a:
if country not in line:
print(line)
Run Code Online (Sandbox Code Playgroud)
print(line)打印所有行而不是打印那些不包含国家/地区的行
我有一个字典数据,其中包含每个用户创建的玩家数量:
视图.py
def statistics(request):
users = User.objects.all()
data = dict()
for user in users:
players = Players.objects.filter(created__email=user.email).count()
if players > 0:
data[user.email] = players
logger.info(data)
Run Code Online (Sandbox Code Playgroud)
使用 runserver 时如何在控制台中打印此字典?我见过 django 记录器,但我没有完全理解它们。
在我的应用程序中,我正在使用ModelViewSet
,至于我使用的网址SimpleRouter()
:
主.url
urlpatterns = [
url(r'^teams/', include('team.urls', namespace='teams')),
]
Run Code Online (Sandbox Code Playgroud)
团队网址
router = SimpleRouter()
router.register('', views.TeamViewSet, base_name='teams')
router.register('players', views.PlayersViewSet, base_name='players')
urlpatterns = [
url(r'^', include(router.urls))
]
Run Code Online (Sandbox Code Playgroud)
我希望我的网址如下所示:http://.../teams/和http://.../teams/players/。我的问题是,当我留空时,router.register('', views.TeamViewSet, base_name='teams')
它会向玩家网址发送未找到的 404 错误,但如果我向第一个网址添加任何内容,例如:router.register('anything', views.TeamViewSet, base_name='teams')
,它将起作用。
我怎样才能按照我想要的方式设置网址,为什么它不能以这种方式工作?
我正在使用django内置登录表单,我想将占位符添加到用户名和密码.
我的模板:
<div class="form-group">
<div class="col-md-12">
{{ form.username|add_class:'form-control' }}
</div>
</div>
<div class="form-group">
<div class="col-md-12">
{{ form.password|add_class:'form-control' }}
</div>
</div>
Run Code Online (Sandbox Code Playgroud)
我怎样才能做到这一点?
我正在使用reportlab 创建pdf。我正在使用 Reportlab 段落。问题是每次我下载它时,它都会生成一个空的txt。我在没有 django 的情况下测试了它,它工作没有问题。如果我使用画布,它可以工作,但不适合我的需要。
视图.py
from django.http import HttpResponse
from django.shortcuts import render
from reportlab.lib.enums import TA_JUSTIFY
from reportlab.platypus import SimpleDocTemplate, Paragraph, Spacer
from reportlab.lib.styles import getSampleStyleSheet, ParagraphStyle
from reportlab.lib.pagesizes import letter
def genereaza_pdf(request):
if request.method == 'POST':
response = HttpResponse(content_type='application/pdf')
response['Content-Disposition'] = 'attachment; filename="example.pdf"'
doc = SimpleDocTemplate("example.pdf", pagesize=letter, rightMargin=70, leftMargin=70, topMargin=70,
bottomMargin=60)
report = []
styles = getSampleStyleSheet()
styles.add(ParagraphStyle(name="Times", fontName='Times-Roman', fontSize=15, alignment=TA_JUSTIFY))
p_text = "<u>ANEXA 1</u>"
report.append(Paragraph(p_text, styles["Times"]))
report.append(Spacer(1, 5))
doc.build(report)
return response
return render(request, 'pdf_test.html')
Run Code Online (Sandbox Code Playgroud)
pdf_test.html …
是否可以在不使用“for”的情况下从对象中获取 ManyToMany 的值?
模型.py
class Citizenship(models.Model):
name = models.CharField(max_length=100)
class Meta:
verbose_name_plural = "Citizenship"
def __str__(self):
return self.name
class Anexa(models.Model):
name = models.CharField(max_length=150, help_text="3")
citizenship = models.ManyToManyField(Citizenship, help_text="4")
Run Code Online (Sandbox Code Playgroud)
我有一个名为 Alex 的 Anexa 对象,我有这个对象的 4 个公民身份。我正在寻找与此等效的东西:
for citizenships in x.citizenship.all():
print(citizenships.name)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用 geopy 获取城市和国家/地区名称。
通常这是您使用 geopy 获取城市和国家的方式。
from geopy.geocoders import Nominatim
geolocator = Nominatim(timeout=3)
geolocator.reverse('52.5094982,13.3765983')
loc = location.raw
loc_dict = location.raw
print(loc_dict['address'])
and this is the output:
{'suburb': 'Tiergarten', 'country_code': 'de', 'country': 'Deutschland', 'postcode': '10117', 'attraction': 'Potsdamer Platz', 'road': 'Potsdamer Platz', 'city': 'Berlin', 'city_district': 'Mitte', 'state': 'Berlin'}
Run Code Online (Sandbox Code Playgroud)
我的问题是 geopy 以其国家语言返回城市和国家名称,例如:
city: Berlin, country: Deutschland
city: København, country: Danmark
city: Bucure?ti, country: România
Run Code Online (Sandbox Code Playgroud)
我希望他们像这样:
city: Berlin, country: Germany
city: Copenhagen, country: Denmark
city: Bucharest, country: Romania
Run Code Online (Sandbox Code Playgroud)
是否有可能按照我的意愿用英语获得它们?或以某种方式转换它们?我正在使用世界各地的所有国家和城市。
python ×7
django ×6
datetime ×1
django-forms ×1
geopy ×1
image ×1
pdf ×1
python-3.x ×1
reportlab ×1