我只是想知道是否有任何方法来编写python脚本来检查twitch.tv流是否存在?任何和所有的想法都表示赞赏!
编辑:我不知道为什么我的应用引擎标签被删除,但这将使用应用程序引擎.
一些背景优先.我正在使用以下"技巧"来防止不希望的浏览器缓存静态文件(CSS,JS等):
<script src="{{ STATIC_URL }}js/utils.js?version=1302983029"></script>
Run Code Online (Sandbox Code Playgroud)
当版本字符串在后续页面加载时发生更改时,它会使浏览器从服务器重新获取静态文件.(谷歌"css缓存"有关此技巧的文章.)
我希望浏览器获取最新版本的静态文件,但我还希望在文件未更改时允许浏览器缓存.换句话说,当且仅当静态文件已更新时,我希望更改版本字符串.我也想自动生成版本字符串.
为此,我使用静态文件的上次修改时间作为版本字符串.我正在制作一个自定义模板标签来执行此操作:
<script src="{% versioned_static 'js/utils.js' %}"></script>
Run Code Online (Sandbox Code Playgroud)
以下是模板标签的工作原理:
import os.path
from django import template
from django.conf import settings
class VersionedStaticNode(template.Node):
...
def render(self, context):
# With the example above, self.path_string is "js/utils.js"
static_file_path = os.path.join(settings.STATIC_ROOT, self.path_string)
return '%s?version=%s' % (
os.path.join(settings.STATIC_URL, self.path_string),
int(os.path.getmtime(static_file_path))
)
Run Code Online (Sandbox Code Playgroud)
要获取静态文件的上次修改时间,我需要知道它在系统上的文件路径.我通过连接settings.STATIC_ROOT
和来自该静态根的文件的相对路径来获取此文件路径.这对于生产服务器来说都很好,因为所有静态文件都是在收集的STATIC_ROOT
.
但是,在开发服务器上(使用manage.py runserver命令),不会收集静态文件STATIC_ROOT
.那么在开发中运行时如何获取静态文件的文件路径?
(为了澄清我的目的:我要避免的缓存情况是浏览器使用新HTML和旧CSS/JS的不匹配.在生产中,这可能会极大地混淆用户;在开发中,这会让我和其他开发人员混淆,并且我们经常刷新页面/清除浏览器缓存.)
我正在制作一个需要从拖放输入中读取 URI 的应用程序。我正在尝试使用urllib.parse.urlparse()
.
urlparse()
按预期处理 Internet URL:
>>> import urllib
>>> urllib.parse.urlparse('https://www.google.com/advanced_search')
ParseResult(scheme='https', netloc='www.google.com', path='/advanced_search', params='', query='', fragment='')
Run Code Online (Sandbox Code Playgroud)
但是在本地 Windows 文件上使用它会在路径的开头留下一个额外的斜线:
>>> urllib.parse.urlparse('file:///C:/Program%20Files/Python36/LICENSE.txt')
ParseResult(scheme='file', netloc='', path='/C:/Program%20Files/Python36/LICENSE.txt', params='', query='', fragment='')
Run Code Online (Sandbox Code Playgroud)
事实上,需要本地文件路径的函数似乎不喜欢这个额外的斜杠:
>>> from pathlib import Path
>>> Path('/C:/Program%20Files/Python36/LICENSE.txt').exists()
Traceback (most recent call last):
...
OSError: [WinError 123] The filename, directory name, or volume label syntax is incorrect: '\\C:\\Program%20Files\\Python36\\LICENSE.txt'
Run Code Online (Sandbox Code Playgroud)
我可以编写一个我自己的特殊情况来以file:///<Windows drive letter>:
某种方式处理,但作为一个清洁问题:是否有更好的 Python 函数来分割 URI,而不仅仅是 URL?或者还有什么我想念的吗?
使用 Python 3.6.1。