我想动态显示我的CPU使用情况.我不想重新加载页面以查看新值.我知道如何在Python中获得CPU使用率.现在我用值渲染一个模板.如何使用Flask中的值不断更新页面?
@app.route('/show_cpu')
def show_cpu():
cpu = getCpuLoad()
return render_template('show_cpu.html', cpu=cpu)
Run Code Online (Sandbox Code Playgroud) 无论软件是否读取exif数据,我都需要以相同的方向显示我的一些图片.一种解决方案(唯一可以实际适合的解决方案)是根据exif标签旋转图像(如果存在),然后删除或修改此标记为"1".
示例
假设图像的Orientation exif标记设置为3.我想要做的是根据此标记旋转此图像并以这种方式保存.因此,不解释exif的软件仍然会以良好的方向显示它.虽然如果exif标签Orientation仍然设置为3,那么解释Exif的软件将旋转我已旋转的图像.这就是为什么我想将此标记设置为1(这意味着:没有方向)或删除它.
我的最终目标是,无论使用哪种软件打开图像,图像始终都会显示相同的图像.
有很多问题,Exif和Python,等等等等等等.这是我听说过的lib列表:
什么是最佳做法?有纯粹的python解决方案吗?(我可以用pip安装并把它放在我的requirements.txt中)是否有某种新的lib我可以使用哪种特定于Python3?
我现在唯一的问题是修改并将这些exif数据写入图像文件.我可以读取exif数据,并根据方向标记旋转图像.有关于此的任何提示或建议吗?
我试图理解Notify(python包装器)和pynotify之间的区别.例如 :
from gi.repository import Notify
Run Code Online (Sandbox Code Playgroud)
和
import pynotify
Run Code Online (Sandbox Code Playgroud)
创建通知的代码看起来很相似,但似乎我无法使用python3.3导入pynotify.顺便说一下,我找不到使用Notify创建带信号处理程序的按钮的方法.有没有办法可以在Python3.3中导入pynotify或使用Notify创建按钮?
这两个模块有什么区别?
我一直在网上搜索,但似乎我对谷歌u_u不够熟练
,提前谢谢.
Jsonify似乎不适用于应用程序上下文,是否有解决方法?
我正在用websockets替换一些ajax请求,因为它是性能和网络问题所必需的.我在我的环境中安装了带有pip的Flask-WebSocket.现在我收到一个错误:
RuntimeError: working outside of application context
Run Code Online (Sandbox Code Playgroud)
我申请的骨架如下:
app/
??? forms
??? static
? ??? css
? ??? img
? ? ??? DefaultIcon
? ? ??? eps
? ? ??? png
? ??? js
??? templates
??? ups
??? views
Run Code Online (Sandbox Code Playgroud)
websockets python文件位于views/ajax.py中:
# -*- coding: utf-8 -*-
# OS Imports
import time
# Flask Imports
from flask import jsonify
from .. import sockets
from app.functions import get_cpu_load, get_disk_usage, get_vmem
# Local Imports
from app import app
from app.views.constants import …Run Code Online (Sandbox Code Playgroud) 我目前正在使用此实现来使用基于浏览器的通知:https:
//developer.mozilla.org/en-US/docs/Web/API/Notification
这就像一个魅力.
if ("Notification" in window) {
if(Notification.permission === "granted") {
if($('#notify-on-message').is(':checked')) {
var notification = new Notification(username + ' : ' + data, {'icon': "/custom/favicon.gif"});
}
if ($('#notify-on-hl').is(':checked')) {
var patt = new RegExp("(^|\\W)"+selfusername+"(\\W|$)");
if(patt.test(data)) {
var notification = new Notification(username + ' highlighted you.', {'icon': "/custom/favicon.gif"});
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
我遇到的主要问题是,在基于chrome的浏览器上,通知在3秒延迟后才会自动关闭.
它尝试在之后加入var notification = ...
setTimeout(function() {
notification.close();
}, 2000);
Run Code Online (Sandbox Code Playgroud)
虽然这不会改变一件事.通知仍然存在.
这是一个已知的问题吗?有没有一种简单的方法来解决我不想要的这种行为?
编辑1:根据此页面:
https://developer.mozilla.org/en-US/docs/WebAPI/Using_Web_Notifications
这是一个已知问题:
注意:Firefox和Safari会在片刻之后自动关闭通知,例如4秒.
这也可以使用Notification.close()方法在Web应用程序级别完成,例如使用以下代码:
var n = new Notification("Hi!"); …Run Code Online (Sandbox Code Playgroud) 我想使用 Google Drive API 使用 cronjob 在其上存储一些备份。我只是不明白如何使用服务帐户使用 PyDrive。当我生成服务帐户文件时,我将它作为我的脚本放在目录中client_secret.json。
使用此代码:
#!/usr/bin/env python
# -*- coding: utf8 -*-
from pydrive.auth import GoogleAuth
from pydrive.drive import GoogleDrive
def main():
gauth = GoogleAuth()
drive = GoogleDrive(gauth)
f = drive.CreateFile({'parent': 'toto'})
f.SetContentFile('test.drive.py')
f.Upload()
if __name__ == '__main__':
main(sys.argv[1:])
Run Code Online (Sandbox Code Playgroud)
结果
pydrive.settings.InvalidConfigError: Invalid client secrets file Invalid file format.
Run Code Online (Sandbox Code Playgroud)
好吧。然后我查看了关于 SO 的其他帖子,并找到了这两个:
Automate Verification Process
The code from the first answer on this question返回:
Traceback (most recent call last):
File "test.drive.py", line 4, in <module> …Run Code Online (Sandbox Code Playgroud) 当一位朋友告诉我我的网站上存在安全漏洞时,我正在使用 Flask 开发一个 Web 应用程序。事实上,如果他转储浏览器在登录、注销时拥有的 cookie,然后粘贴回相同的 cookie,就好像他从未注销过一样。事实是,这不是预期的行为。当用户注销时,cookie应该失效并且不能再次使用。
现在我有一个用户模型,存储在数据库中。在这种情况下应该使用什么技术?以前有人遇到过同样的问题吗?更重要的是,如何在我的网站上集成这种安全性,而不必重写每个视图来检查令牌或类似的东西?
这是应用程序初始化。
# App initialization
app = Flask(__name__)
app.config.from_object('config')
app.wsgi_app = ProxyFix(app.wsgi_app)
# Database Setup
db = SQLAlchemy(app)
# Login Manager Setup
login_manager = LoginManager()
login_manager.init_app(app)
login_manager.login_view = 'index'
login_manager.session_protection = 'strong'
Run Code Online (Sandbox Code Playgroud)
这是我目前使用的用户模型。
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(50), unique=True)
password = db.Column(db.String(54))
superuser = db.Column(db.Boolean())
active = db.Column(db.Boolean())
register_date = db.Column(db.DateTime())
last_login = db.Column(db.DateTime())
Run Code Online (Sandbox Code Playgroud)
请注意,我删除了与此问题无关的方法和附加字段。
我认为我遇到的问题并不常见,因为我似乎无法在这里或在 Google 上找到答案。
我的数据库中存储了几张图片,为了提供这些图片,我想压缩它们,存储在数据库中创建的 ZipFile,该数据库具有 AmazonS3 存储作为后端。更重要的是,所有这些操作都是在 Celery 管理的后台任务中完成的。现在......这是我写的代码:
zipname = "{}.zip".format(reporting.title)
with ZipFile(zipname, 'w') as zf:
# Here is the zipfile generation. It quite doesn't matter anyway since this works fine.
reporting = Reporting.objects.get(pk=reporting_id)
reporting.pictures_archive = zf
reporting.save()
Run Code Online (Sandbox Code Playgroud)
我收到错误:*** AttributeError: 'ZipFile' object has no attribute '_committed'
所以我尝试以这种方式将 zipfile 转换为 Django 文件:zf = File(zf)但它返回一个空对象。
任何人都可以帮助我吗?我有点卡住了...
python ×6
flask ×3
javascript ×2
cookies ×1
django ×1
exif ×1
firefox ×1
flask-login ×1
google-apps ×1
jinja2 ×1
notify ×1
pydrive ×1
pynotify ×1
python-3.x ×1
websocket ×1
zip ×1