所以我试图让浏览器下载一个具有特定名称的文件,该文件存储在数据库中.为防止文件名冲突,文件将使用GUID保存在磁盘上,当需要实际下载时,将为浏览器提供数据库中的文件名.这个名字是用日语写的,当我在页面上显示它时它很好,所以它在数据库中存储好.当我尝试让浏览器以该名称下载时:
return send_from_directory(app.config['FILE_FOLDER'], name_on_disk,
as_attachment=True, attachment_filename = filename)
Run Code Online (Sandbox Code Playgroud)
Flask抛出一个错误:
UnicodeEncodeError: 'ascii' codec can't encode characters in position 15-20:
ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)
错误似乎不是来自我的代码,而是来自Werkzeug的一部分:
/werkzeug/http.py", line 150, in quote_header_value
value = str(value)
Run Code Online (Sandbox Code Playgroud)
为什么会这样?根据他们的文档,Flask是"100%Unicode"
在重写我的代码之前,我确实遇到了这个问题,并且通过在Werkzeug中修改了很多东西来修复它,但我真的不想为部署的应用程序执行此操作,因为这是一个痛苦和不好的做法.
Python 2.7.6 (default, Nov 26 2013, 12:52:49)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
Run Code Online (Sandbox Code Playgroud)
filename ="[얼티메이트] [131225] TVアニメ「キルラキル」オリジナルサウンドトラック(FLAC).zip"
print repr(文件名)
'[\xec\x96\xbc\xed\x8b\xb0\xeb\xa9\x94\xec\x9d\xb4\xed\x8a\xb8] [131225] TV\xe3\x82\xa2\xe3\x83\x8b\xe3\x83\xa1\xe3\x80\x8c\xe3\x82\xad\xe3\x83\xab\xe3\x83\xa9\xe3\x82\xad\xe3\x83\xab\xe3\x80\x8d\xe3\x82\xaa\xe3\x83\xaa\xe3\x82\xb8\xe3\x83\x8a\xe3\x83\xab\xe3\x82\xb5\xe3\x82\xa6\xe3\x83\xb3\xe3\x83\x89\xe3\x83\x88\xe3\x83\xa9\xe3\x83\x83\xe3\x82\xaf (FLAC).zip'
>>>
Run Code Online (Sandbox Code Playgroud) 我正在寻找一个弹性搜索中的过滤器,它可以让我将英语复合词分解成它们的组成部分,例如对于像这样的术语eyewitness,eye witness并且eyewitness查询都会匹配eyewitness.我注意到了复合词过滤器,但这需要明确定义一个单词列表,这是我自己无法想出的.
我正在使用一个返回urls的应用程序,用Flask.我希望URL显示给用户尽可能干净,所以我想从中删除http://它.我查看并找到了urlparse库,但找不到任何如何执行此操作的示例.
什么是最好的方法,如果urlparse是矫枉过正是有一个更简单的方法?http://只是使用常规字符串解析工具从URL中删除" "子串是不好的做法还是会导致问题?
所以我对SQL和数据库一般都很陌生(只为最小的站点设计了一个非常简单的),我正在尝试找出为数据库驱动的网站设计一些模型的最佳方法.例如,用户上传了图库.我有一个画廊表,其中有合理的列,如上传日期,名称等,画廊可以属于一个类别,其中不会有那么多(最多像6个).我应该将类别设为图库表的列吗?或者有一个单独的类别表,并在类别和图库表之间有多对一的关系?我想在我的观点中做一些事情,比如按类别按照上传的类别对所有画廊进行排序,它们之间是否存在性能/便利性差异?将类别作为Gallery表的列确实比我更容易处理,但我不确定什么是最佳实践.谢谢.
我正在通过图像系统(类似于Google的反向图像搜索)来创建公司内部使用的编目系统的搜索。我们已经成功地将Elasticsearch用于常规搜索功能,因此我计划进行哈希处理我们所有的图像,为它们创建一个单独的索引,并将其用于搜索。系统中有很多项目,每个项目可能都有与其关联的多个图像,并且该项目应该能够通过反向图像搜索其任何相关图像来找到。
我们想到了2种可能的模式:
为每个图像制作一个文档,仅包含图像的哈希值和与之相关的项目ID。这将导致大约700万个文档,但是它们会很小,因为它们仅包含一个哈希和一个ID。
为每个项目制作一个文档,并将与之关联的所有图像的哈希存储在文档上的数组中。这将导致大约10万个文档,但是每个文档将相当大,某些项目具有与之关联的数百个图像。
这些模式中哪个更有效?
我试图在 Elasticsearch 中获得一个简单的开始功能。例如,我希望查询“char”与“charlotte”匹配,但我不希望它与“dacharlotte”匹配。使用 edgeNgram 过滤器给了我后一个结果。我只希望它匹配以查询词开头的结果,而不仅仅是将它们包含在其中。
所以我试图将用 Flask 编写的 Python Web 应用程序移植到 Google App Engine。该应用程序托管用户上传的文件大小最大为 200mb,对于非图像文件,需要保留文件的原始名称。为了防止文件名冲突,例如两个人上传 stuff.zip,每个人都包含完全不同且不相关的内容,应用程序在文件系统上创建一个 UUID 文件夹并将文件存储在其中,并将其提供给用户。Google App Engine 的云存储,我计划使用它来存储用户文件,通过创建一个存储桶 - 根据他们的文档,“没有文件夹的概念”。在他们的系统中获得相同功能的最佳方法是什么?
目前的方法,仅用于演示:
# generates a new folder with a shortened UUID name to save files
# other than images to avoid filename conflicts
else:
# if there is a better way of doing this i'm not clever enough
# to figure it out
new_folder_name = shortuuid.uuid()[:9]
os.mkdir(
os.path.join(app.config['FILE_FOLDER'], new_folder_name))
file.save(
os.path.join(os.path.join(app.config['FILE_FOLDER'], new_folder_name), filename))
new_folder_path = os.path.join(
app.config['FILE_FOLDER'], new_folder_name)
return url_for('uploaded_file', new_folder_name=new_folder_name)
Run Code Online (Sandbox Code Playgroud) 我有一个HTML文档中的表单的提交按钮,如下所示:
<form id = "submit" method="get" action="">
<input type="submit" name="action" value="Download" id="dlbutton"/>
</form>
Run Code Online (Sandbox Code Playgroud)
我尝试使用border-radius属性在CSS上使用圆角,但它们仍然保持清晰:
#dlbutton{
background:#223445;
color:#FFFFFF ;
border: 1px solid #223445;
border-radius: 18px
-moz-border-radius: 5px
display:inline-block;
width: 20em;
height: 5em;
-webkit-font-smoothing: antialiased;
}
Run Code Online (Sandbox Code Playgroud)
我在另一个页面上有另一个按钮,它的样式完全相同并且有圆角,除了html按钮是这样的:
<p><button class="clickable" id="clickable">Click me</button></p>
Run Code Online (Sandbox Code Playgroud)
我正在使用最新的Firefox.谢谢
我在网站上上传,并使用 Flask 作为后端。这些文件都通过一个 POST 请求从客户端发送到服务器,我通过使用 的getlist()方法单独处理它们request,并使用 for 循环进行迭代:
if request.method == 'POST':
files = request.files.getlist('f[]')
Run Code Online (Sandbox Code Playgroud)
问题是我想将上传的每个文件的大小限制为 50mb,但我假设MAX_CONTENT_LENGTH限制了整个请求的大小。有没有一种方法可以评估request对象中每个单独文件的大小,并在文件太大时拒绝该文件?用户可以上传一定数量的文件,但每个文件都需要在 50mb 以下。
很高兴听到我正在做的视频应用程序的一些新iPhone的视频稳定性,但是你如何在一个功能强大的设备上实现它的录制会话呢?查看API文档,只有一种方法可以检查它是否受支持,在iOS 8中不推荐开启/关闭它的方法.它是自动的还是什么?
我有一些文件和有关它们的信息在SQL数据库中.对于给定的文件组,它们将共享共同的gallery_id(文本)和不同的upload_time(日期时间).我正在尝试获取所有共享一个公共图库ID的文件列表,然后按upload_time对它们进行排序,但它无法正常工作.这是我使用的语法:
>>> foo = Storedfile.query.filter_by(
gallery_id ='kgLivY').all().order_by(Storedfile.upload_time)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'list' object has no attribute 'order_by'
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
flask ×4
python ×3
sql ×2
avfoundation ×1
css ×1
hash ×1
html ×1
http-headers ×1
ios ×1
objective-c ×1
performance ×1
request ×1
sqlalchemy ×1
swift ×1
unicode ×1
werkzeug ×1