제로 항목에서 파이썬 배경 작가 (C)

플라스크 마지막 문제는 우리가 약간의 가곡을 썼다 있지만, 일부 너무 초라한 것을, 우리는이 페이지의 동적을!

A는, Jinja2 템플릿 엔진이 알고 (당신이 볼 수 없습니다 보면 너무 게으른)

주형

앞의 예에서, 주 영향은 가장 간단한 요청 인 뷰 생성 요청에 응답 함수이다. 사실,보기 기능은 두 가지 효과가 있습니다 비즈니스 로직 처리를하고 응답 내용을 반환합니다. 대형 애플리케이션, 비즈니스 로직과 프리젠 테이션 컨텐츠 함께, 그것은 코드의 복잡성 및 유지 보수 비용을 증가시킬 것이다. 이 배운 템플릿 섹션, 즉, 그 역할은 응답 콘텐츠를 반환하는 함수의 또 다른보기의 역할을하는 것입니다.

  • 그것은 실제로 응답 템플릿 파일에 사용되는 데이터 엔진의 요구로부터 얻은 템플릿의 특정 값을 알려주는 틀 (가변)의 동적 부분에 의해 표시되는 텍스트를 포함

  • 다음 실제 값과와 대체 변수는 결과 문자열, "렌더링"이라는 프로세스를 반환

  • 플라스크는 Jinja2 렌더링이 템플릿 템플릿 엔진을 사용하는 것입니다
    템플릿을 사용의 이점을 :

  • 보기 기능은 서비스 로직 및 데이터를 처리만을 담당 (비즈니스 로직 조건)

  • 그리고 표시 기능 결과보기 템플릿 데이터 (뷰 측면을 도시) 걸릴

  • 명확한 코드 구조, 낮은 커플 링

Jinja2

두 개념 :

  • Jinja2는 : 파이썬, 파이썬 템플릿 언어, 장고 템플릿 엔진에서 자신의 디자인 아이디어에 의해 구현되는 널리 사용되는 템플릿 엔진이며, 그 구문과 내장되어 플라스크 템플릿 강력한 기능을 확대 언어.
  • 템플릿 언어는 : 그것은 자동으로 템플릿에 전달 일반적으로 몇 가지 변수를 템플릿 언어로 간단한 텍스트 문서 형식을 생성하기 위해 특정 위치의 한 종류가 미리 정의 된 템플릿 자리 표시 자 변수의 이름을 대체 설계되어있다.

템플릿 기능을 렌더링

  • 플라스크는 render_template 기능 패키지는 템플릿 엔진을 제공합니다
  • 첫 번째 파라미터는 후자의 파라미터는 해당 템플릿의 변수의 실제 값을 나타내는 키 - 값 쌍은 파일 이름는 render_template 함수 템플릿이다.

둘째, 폭력 Jinja2 학습 템플릿 (면책 조항 : jinja2는 HTML의 내부에 사용됩니다)

주의

{# 我是注释 #}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{# 我是注释 #}
</body>
</html>

변수 블록 (파이썬에서 들어오는 페이지에 표시 될 수 있음)

{{ name }}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
{{ name }}
</body>
</html>

제어 블록 (분석 및 루프, 작은 BB, 라인에보기)

{% if user %}
    {{ user }}
{% else %}
    hello!
{% for index in indexs %}
    {{ index }} 
{% endfor %}
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

{% if user %}
    {{ user }}
{% else %}
    hello!

{% for index in indexs %}
    {{ index }} 
{% endfor %}

</body>
</html>

필터

변수가 "필터"로 수정 될 수 있으며, 필터가 내부 jinja2으로 이해 될 수있는 기본 기능 문자열 처리 기능한다.

{{ 'abc' | captialize  }}
# Abc
 
{{ 'abc' | upper  }}
# ABC
 
{{ 'hello world' | title  }}
# Hello World


# 过滤器可以链式使用 
{{ "hello world" | replace('world','daxin') | upper }}
# HELLO DAXIN
 
{{ 18.18 | round | int }}
# 18

좀 요약을 필터링합니다

이름 기능
안전한 벗어날 때 시간을 렌더링
capitialize 대문자로 변환 값의 첫 번째 문자는 다른 사진을 소문자
보다 낮은 소문자 전환 가치
높은 값은 대문자로 변환됩니다
표제 각 단어의 첫 글자의 값은 대문자로 변환됩니다
손질 삭제 후미 공간의 값
striptags 모든 HTML 태그의 값을 렌더링하기 전에 삭제됩니다
붙다 다수의 스트링이다 스티칭
바꾸다 또한 문자열 값
일주 숫자 반올림 기본값은, 매개 변수에 의해 제어 될 수있다
INT 정수 값으로 변환

표시

from flask import Flask,render_template

app = Flask(__name__)

@app.route("/")
def index():
    names=["李雷","思远","彦林","辉辉","天骄"]
    strs="abcde"
    #第一个names是传入html用于接受的名字,第二个是python里变量的名字
    return render_template("index.html",names=names,strs=strs)
if __name__ == '__main__':
    app.run(debug=True)
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    {% for name in names %}
        {% if name=="天骄" %}
            My love is {{ name }}!<br>

        {% else %}

            My friend is {{ name }}! <br>
        {% endif %}
    {% endfor %}

    {{ strs }}的大写是{{ strs | upper  }}

</body>
</html>

결과 :

그림 삽입 설명 여기

오늘 Jinja2는 단순히 나는 그것을 아주 쉽게 이해하기, 내일 더 많은 내용 뒤에해야한다고 생각, 문법에 대해 이야기!

게시 13 개 원래 기사 · 원 찬양 4 · 조회수 352

추천

출처blog.csdn.net/qq_43769745/article/details/104806685