我有一个带图像的标签,以及一个按钮,它应该更新标签/删除标签中的图像,这样我就可以通过label.config将新图像放入同一个标签中.
我尝试使用类似的东西:每当你点击按钮时,它应该用label.config(图像=无)删除图像,但它不起作用,如果我将新图像加载到标签中旧的图像仍然存在:
# here is the label initialized
global brand_preview
brand_preview = Label(root, image = None)
brand_preview.place(x = 10, y = 60)
# thats the button which have to clear the label image
self.top_brand = Button(root, text = "clear", bg = "snow3", command=clear_label_image)
self.top_brand.place(x = 550, y = 60)
# thats how I load a photoimage into the label
photoimg_brand = ImageTk.PhotoImage(im_thumb)
brand_preview.image = photoimg_brand
brand_preview.config(image = photoimg_brand)
# Thats how the button works
def clear_label_image():
brand_preview.config(image = None)
brand_preview.image …Run Code Online (Sandbox Code Playgroud) 我需要删除 iframe 中的垂直滚动条。我试过使用overflow: hidden;还是不行。请帮忙。
代码:
#iphone4 {
background-image: url("ipad_new2.png");
background-repeat: no-repeat;
height: 900px;
width: 750px;
margin: auto ;
position: relative;
overflow: hidden;
}
/*Mobile iframe CSS*/
iframe {
height: 700px;
width: 525px;
position: absolute;
top: 68px;
margin: auto ;
left: 61.99px;
overflow-y: scroll;
}
</style>
</head>
<body>
<div id="iphone4" >
<iframe src="index_atish.html" seamless="seamless"></iframe>
</div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我有一个烧瓶应用程序,用户可以在其中提交房间。在我的WTForms中有一个价格字段,它是FloatField:
preis = FloatField('Preis p.P.', validators=[Optional()])
Run Code Online (Sandbox Code Playgroud)
如果输入正确(带点),则可以正常工作,例如:
1.00
Run Code Online (Sandbox Code Playgroud)
但是,如果使用逗号,则会触发错误,例如:
1,00
Run Code Online (Sandbox Code Playgroud)
我的想法是在main.py中捕获此错误,但问题是WTForms的默认错误消息首先触发:
我试图将浮点数转换为字符串,检查是否,在此字符串中,并使用一个简单的值replace(",","."),然后再转换回浮点数。
另一个问题是,如何将此默认Not a valid float value消息更改为自定义消息?
谢谢!
我在 Laravel 项目中使用了两个数据库连接。
我需要修改两个数据库中的表。
我已经设置了一切,现在我正在尝试从第一个和第二个数据库中获取数据,但是文档几乎没有提供有关如何操作的信息,我只发现了这个:
$users = DB::connection('foo')->select(...);
Run Code Online (Sandbox Code Playgroud)
某处有更多资源吗?我找不到任何东西。
到目前为止我明白,如果我使用多个数据库,我就不能再使用 eloquent 了吗?至少我不能将 eloquent 用于第二个数据库,这不是默认的。
为了测试,我在具有不同数据的两个数据库上创建了相同的表。但是我不能查询数据,我总是收到这个错误:
Undefined property: Illuminate\Database\MySqlConnection::$User
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
$users1 = DB::connection('mysql_live')->select('SELECT * FROM users');
info($users1);
$users2 = DB::connection('mysql')->User::all();
info($users2);
Run Code Online (Sandbox Code Playgroud)
我也试过:
$users1 = DB::connection('mysql_live')->User::all();
Run Code Online (Sandbox Code Playgroud)
最好是关于如何正确使用DB::connection和实际选择、编辑、插入数据等的文档。
编辑
我目前正在实施一个半径过滤系统。
用户可以搜索城市中的房间,根据搜索城市的纬度和经度,结果页面将显示半径 60 公里内的所有其他房间。
我找到了一个工作函数,我已经测试过了(尽管数字太高了,相对比例仍然显示正确的结果):
acos(sin(loc_latitude) * sin(zimmer.zimmer_lat) + cos(loc_latitude) * cos(zimmer.zimmer_lat) * cos(zimmer.zimmer_lng - (loc_longitude))) * 6371 <= 6000:
Run Code Online (Sandbox Code Playgroud)
我需要这个作为 jinja if 表达式:
{% if acos(sin(loc_latitude) * sin(zimmer.zimmer_lat) + cos(loc_latitude) * cos(zimmer.zimmer_lat) * cos(zimmer.zimmer_lng - (loc_longitude))) * 6371 <= 6000 %}
Run Code Online (Sandbox Code Playgroud)
但是在模板中 jinja 不知道我从 math 模块导入的 cos() 和 sin() 函数:
File "C:\Users\User\Eclipse-Workspace\Monteurzimmer\templates\zimmer_gefunden.html", line 149, in block "content"
{% if acos(sin(loc_latitude) * sin(zimmer.zimmer_lat) + cos(loc_latitude) * cos(zimmer.zimmer_lat) * cos(zimmer.zimmer_lng - (loc_longitude))) * 6371 <= 60 %}
UndefinedError: 'sin' is undefined …Run Code Online (Sandbox Code Playgroud) 我正在使用Stripe Connect和自定义界面来创建/管理Stripe用户。
我现在想删除一个带区连接帐户,余额为0 ofc。,尽管它与测试键无关紧要。根据条带连接文档,删除帐户超级简单:
使用Connect,您可以删除自己管理的自定义帐户。使用测试模式键创建的自定义帐户可以随时删除。使用实时模式键创建的自定义帐户只有在所有余额均为零后才能删除。
那是我的代码:
user = User.query.filter_by(id=data_received["user_id"]).first()
stripe_acc_id = user.stripe_connect_acc_id
db_session.delete(user)
if stripe_acc_id != None:
print ("User has stripe connect account", stripe_acc_id)
try:
stripe.Account.delete(stripe_acc_id)
except Exception as e:
return json.dumps({'status': 'failed', 'reason': str(e)})
db_session.commit()
Run Code Online (Sandbox Code Playgroud)
但这不起作用,我收到此错误:
{"status": "failed", "reason": "'str' object has no attribute 'refresh_from'"}
Run Code Online (Sandbox Code Playgroud) 在我的数据库中,我有房间,这些房间有多个布尔值,例如has_tv。
用户可以在城市中搜索房间,他将被重定向到结果页面,在该页面中找到搜索到的城市中的所有房间。
现在有一个过滤功能,可以按房间(例如有电视)过滤当前结果集。为此,用户选中具有以下值的复选框has_tv
我设法使其工作,但它不会忽略False值。这意味着如果用户选中has_tv它,则为true,但所有其他布尔值都为false(因为未选中它们)。因此,这将仅向我显示has_tv为true且所有其他值为false的结果,我需要查看has_tv为true且其他结果无关的结果,其中一些可以为false和true。
那就是我使用的atm:
if form.validate_on_submit():
all_rooms_in_city = Zimmer.query.filter(or_(Zimmer.haustiere_erlaubt.is_(form.haustiere_erlaubt.data), Zimmer.bettwaesche_wird_gestellt.is_(form.bettwaesche_wird_gestellt.data))).all()
else:
all_rooms_in_city = Zimmer.query.order_by(desc("stadt")).all()
Run Code Online (Sandbox Code Playgroud)
这些都是可以检查的值(有很多,所以不可能对所有可能性进行硬编码):
class FilterZimmerForm(Form):
haustiere_erlaubt = BooleanField("Haustiere")
bettwaesche_wird_gestellt = BooleanField("Bettwaesche")
grill_vorhanden = BooleanField("grill_vorhanden")
safe_vorhanden = BooleanField("safe_vorhanden")
kuehlschrank_vorhanden = BooleanField("kuehlschrank_vorhanden")
rauchen_erlaubt = BooleanField("rauchen_erlaubt")
parkplatz_vorhanden = BooleanField("parkplatz_vorhanden")
kochmoeglichkeit_vorhanden = BooleanField("kochmoeglichkeit_vorhanden")
restaurant_im_haus_vorhanden = BooleanField("restaurant_im_haus_vorhanden")
handtuecher_werden_gestellt = BooleanField("handtuecher_werden_gestellt")
tv_vorhanden = BooleanField("tv_vorhanden")
waschmoeglichkeit_vorhanden = BooleanField("waschmoeglichkeit_vorhanden")
wlan_vorhanden = BooleanField("wlan_vorhanden")
Run Code Online (Sandbox Code Playgroud)
当然,如果稍后再说两个,则应显示所有房间,其中两个检查值均为真,而其他所有值都不要紧!
编辑:
看来我找到了一种解决方案,已经测试了几次,它似乎可以按预期工作,但它似乎不是最佳实践:
if form.validate_on_submit():
filter_result = []
if form.haustiere_erlaubt.data == True:
filter_result.append(Zimmer.haustiere_erlaubt.is_(True))
if form.bettwaesche_wird_gestellt.data == True: …Run Code Online (Sandbox Code Playgroud) 我正在使用以下代码将静态文件缓存在heroku上托管的flask应用程序中:
# cache control
@app.after_request
def add_header(response):
# rule so it will only affect static files
rule = request.path
if "static" in rule:
response.cache_control.max_age = 1000000
return response
else:
return response
Run Code Online (Sandbox Code Playgroud)
工作正常。
但是,现在我做了一些更改,我需要该站点加载新文件。如果我在已经打开过的常规浏览器中打开该站点,它将加载旧文件(因为它们已被缓存)。
在隐身模式下或按ctrl + f5 =会加载新文件。问题是普通用户不会按ctrl + f5或使用隐身模式。
我有 20 多个元素,它们都应该使用相同的类 (animate.css)
如果我想编辑动画,更改所有类是非常烦人的,所以我将动画类保存在我的服务中的一个变量中:
animClassSecond = "animate__animated animate__bounceInUp";
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将它添加到 [ngClass],这不起作用:
[ngClass]="{'select_elem':true, 'btn_2':true, 'dataService.animClassSecond':true}"
[ngClass]="{'select_elem':true, 'btn_2':true, 'this.dataService.animClassSecond':true}"
[ngClass]="{'select_elem':true, 'btn_2':true, this.dataService.animClassSecond:true}"
[ngClass]="{'select_elem':true, 'btn_2':true, dataService.animClassSecond:true}"
Run Code Online (Sandbox Code Playgroud)
它要么是模板错误,要么无法解析为变量。有任何想法吗?
PS:添加第二个 [ngClass] 属性也不起作用,因为第一个属性被忽略。
我正在使用 Flask sqlalchemy 和 postgreSQL 并且显示的日期时间有问题,在调查这个问题时我发现了另一个奇怪的事情:
在隐身模式(chrome 浏览器选项卡)下创建数据库条目会给出不同/错误的时间。编辑:它与隐身模式无关,这两种情况也发生在正常模式下。我还没有弄清楚为什么。
这是代码:
我更改了数据库的默认时区:
ALTER DATABASE postgres SET timezone TO 'Europe/Berlin';
Run Code Online (Sandbox Code Playgroud)
该模型:
class User(UserMixin, Base):
__tablename__ = 'users'
date_added = Column(DateTime(timezone=True), nullable=False)
Run Code Online (Sandbox Code Playgroud)
我用来将日期时间添加到数据库的方法:
date_added=datetime.today()
Run Code Online (Sandbox Code Playgroud)
它在数据库中的外观(此时我的本地时间是 13:53:46):
不在隐身模式下创建条目
timestamp with time zone
2019-02-01 13:53:46.73817+01
Run Code Online (Sandbox Code Playgroud)
在隐身模式下创建条目
timestamp with time zone
2019-02-01 12:53:46.73817+01
Run Code Online (Sandbox Code Playgroud)
这真的让我担心。这是错误的。即使我将日期时间对象转换为本地时间。两个条目同时完成,但显示不同的结果,这怎么可能?
同样在 HTML 中查看这些日期时,postgreSQL 不会应用偏移量,因此第一个日期看起来正确,但第二个日期是错误的。
最初我只是想找到一种方法来在欧洲/柏林存储所有日期时间对象并在欧洲/柏林时间返回它们,所以我不必将 UTC 转换为欧洲/柏林,但现在我认为出现了可怕的错误。
我也到处都仔细检查了我的代码,我没有使用其他方法来操作日期时间对象。
编辑
每次用户登录时,我都会保存一个日期时间。目前我在非隐身模式下尝试过。我的本地时间是14:13:33但它保存到数据库中:
2019-02-01 13:13:33.804339+01。这怎么可能?我知道它不能是随机的,但现在看起来它的保存时间是随机的,有时是带有偏移量的 UTC,有时是带有偏移量的欧洲/柏林。
编辑
我仔细检查了所有有问题的表格SHOW timezone;,它们都正确返回Europe/Berlin