플라스크 (Flask)와 피어 오브 옴 (orewow)이 뒷받침하는 아주 간단한 블로그 사이트가 있습니다. 게시물 및 이미지 만 (점수를 매기십시오). 이미지에는 이미지 파일 (분명히), 제목 및 간단한 설명이 있습니다. 필터 또는 태그 등을 추가하고 기본적으로 {{ img.id|3 }}
과 같은 게시물을 내 마크 다운하고 id=3
의 이미지를 div
의 제목 및 설명과 함께 렌더링합니까?플라스크 렌더 이미지 (및 데이터)
1
A
답변
4
매크로와 파이썬 함수를 사용하여 만들 수 있습니다.
먼저 글로벌 템플릿을 추가하십시오.
@app.template_global()
def get_image(id):
# not sure if this is the way to do it with peewee
return Image.select().where(Image.id == id).get()
이렇게하면 {{ get_image(id=3) }}
으로 전화하여 이미지 개체를 얻을 수 있습니다. 물론, 그것은 여전히 당신의 문제를 해결하지 못합니다.
원하는 방식으로 HTML을 생성하려면 Jinja2 매크로를 만들어 HTML 블록을 생성하십시오.
{% macro img(id) %}
{% set obj = get_image(id) %} {# here I'm calling the template global function #}
<img src="{{ obj.url }}" />
<span class="title">{{ obj.title }}</span>
<span class="description">{{ obj.description }}</span>
{% endmacro %}
지금, 당신은 매크로 img
에서 HTML을 인쇄 할 {{ img(id=3) }}
또는 {{ img(3) }}
를 호출 할 수 있습니다.
여기서는 url
, title
및 description
으로 개체를 가정합니다. 이미지를 게재 할 경로가 있다면 아마도 {{ obj.url }}
대신 url_for('some_route', id=id)
과 같은 것이 될 것입니다.
물론 get_image
함수에서 HTML을 제공하거나 매크로에서 데이터베이스를 쿼리 할 수도 있습니다.하지만이 방법으로 문제를 구분했습니다.
1
Jinja2의 경우 template_filter
과 함께 자신의 필터를 추가 할 수 있습니다. 필터는 매개 변수를 사용할 수 있습니다.
이미 링크 속성이있는 템플릿에 이미지 개체가있는 경우이 속성을 사용하는 것이 좋습니다.
이 이미지에 대한 특수 경로가있는 경우 지정된 인수가있는 url_for
을 사용하는 것이 좋습니다. 인수가 많은 경우 사용자 정의 필터를 항상 추가 할 수 있습니다.
관련 문제
- 1. 플라스크, 이미지 및 서빙
- 2. 렌더 배열 데이터
- 3. 플라스크 이미지 제공
- 4. Matplotlib에서 플라스크 이미지 채우기
- 5. 루프에있는 플라스크 wtforms 게시 및 데이터 저장
- 6. 플라스크 검색 데이터
- 7. 플라스크 요청 양식 데이터
- 8. NG 렌더링의 각진 렌더 이미지 태그
- 9. ViewModel에서 렌더 Json 및 viceversa
- 10. 렌더 도우미 및 컨트롤러 인스턴스화
- 11. 플라스크 중첩 된 게시물 데이터
- 12. 백그라운드 프로세스 및 플라스크
- 13. 방법 플라스크 및 angularJS
- 14. 플라스크 소켓 및 ZeroMQ
- 15. 플라스크 확장 및 구성
- 16. 파이썬 - 플라스크 및 세션
- 17. 플라스크 및 파이썬
- 18. 플라스크 g.user 및 before_request
- 19. 플라스크 및 SQLAlchemy 질문
- 20. 플라스크 및 스케일링과 병행
- 21. 플라스크 및 오픈 레이어
- 22. 플라스크 및 nginx 루팅
- 23. 플라스크 및 Pycharm socket.error
- 24. 플라스크 및 sys.excepthook
- 25. 렌더 부분 뷰 데이터 부모/자식
- 26. 플라스크 템플리트 및 리디렉션 문제
- 27. 이미지로 렌더 렌더러를 복사하십시오.
- 28. 플라스크 보안으로 플라스크 인증
- 29. 플라스크 (플라스크) 이주 오류
- 30. 파이썬과 플라스크, 루핑 및 변수를 기반으로 데이터 인쇄
내가 필요한 것. 감사합니다. – freethrow
이 코드를 사용하여 이미지를 표시 할 수 없습니다. "3.jpg"는 그 위치에 있어야합니까? – Gank