python - 如何在django中获取http响应代码wrt一个url?
问题描述
我需要根据关于 url 的响应代码在模板文件中应用 if 语句。由于我不知道任何直接方法,我打算制作一个自定义模板标签,例如:
from django import template
register = template.Library()
@register.filter(name='code')
def code(url):
a = http.response(url)
return a
然后我将在模板中将其称为:
{% if model.fileurl|code==200 %}
<div>..............</div>
此外,当我试图填补我们的 django 开发人员的鞋子时,有什么方法可以直接在模板中完成。
解决方案
您可以制作一个返回状态码的模板标签:
# app/templatetags/code.py
from django import template
from requests import get as reqget
register = template.Library()
@register.filter(name='code')
def code(url):
reqget(url).status_code
该app/templatetags/
目录还需要包含一个__init__.py
文件(如果还没有,您可以添加一个空文件)。
然后在模板中:
{% load code %}
{% if model.fileurl|code == 200 %}
<div>..............</div>
{% endif %}
推荐阅读
- r - 如何只保留R中时差小于3分钟的事件
- python - 带有 PyQt 和 Python 线程、PySerial 和 GPIO 的网络摄像头流媒体
- javascript - “HTMLElement”类型上不存在属性“pseudoStyle”
- vbscript - AddField 函数无法按预期工作
- jenkins - 运行 Jenkins 测试时无法监听端口 33848
- playframework - 如何在 ubuntu 中安装 playframework 2.6?
- css - 100% 宽度的标签?
- apache-spark - 多个 Spark 提交作业错误
- asp.net-mvc - ADAL ASP.NET MVC 和 Angular。从 ASP .NET MVC 登录
- gulp - 使用 gulp-usemin 为每个文件夹制作 index.html