참고: Python 버전은 3.3.1, Django 버전은 1.5.1, 운영 체제는 Windows 7입니다. 다른 버전에는 독자가 직접 살펴볼 수 있는 몇 가지 차이점이 있습니다.
이전 장에서 뷰가 텍스트를 반환할 때 HTML 코드가 Python 코드에 하드 코딩되는 문제를 발견했을 것입니다. %s 등이 있습니다. 이렇게 작성하면 프로그램이 더 복잡해지고, 수정하면 매우 번거로워집니다. 더욱이 HTML 코드 프로그래머가 반드시 Python 코드를 알지 못할 수도 있습니다. 일반적으로 HTML 프런트엔드 페이지와 Python 백엔드를 분리합니다. 프런트 엔드는 페이지 표시만 담당하고, 백그라운드는 데이터 처리 및 기타 작업만 담당합니다. 따라서 템플릿이 특히 중요합니다.
그럼 템플릿이란 무엇일까요?
템플릿은 문서의 표현과 내용을 구분하는 텍스트입니다. 템플릿은 문서 표시 방법을 지정하는 자리 표시자와 다양한 기본 논리(템플릿 태그)를 정의합니다. 템플릿은 일반적으로 HTML을 생성하는 데 사용되지만 Django의 템플릿은 텍스트 기반 형식으로 문서를 생성할 수도 있습니다. 간단한 예를 통해 템플릿이 무엇인지 알아봅시다. (이 예제는 DjangoBook2에서 가져온 것입니다.)
<head><title>Ordering notice</title></head> <body> <h1 id="Ordering-nbsp-notice">Ordering notice</h1> <p>Dear {{ person_name }},</p> <p>Thanks for placing an order from {{ company }}. It's scheduled to ship on {{ ship_date|date:"F j, Y" }}.</p> <p>Here are the items you've ordered:</p> <ul> {% for item in item_list %} <li>{{ item }}</li> {% endfor %} </ul> {% if ordered_warranty %} <p>Your warranty information will be included in the packaging.</p> {% else %} <p>You didn't order a warranty, so you're on your own when the products inevitably stop working.</p> {% endif %} <p>Sincerely,<br />{{ company }}</p> </body> </html>
🎜>위에서 보듯이 Python 코드를 {{...} } 또는 {%...%}는 템플릿입니다. 첫 번째 {{person_name}}은 실제로 변수이고 {%for.. ..%} 또는 {% if ...%} 등은 루프입니다. . 위 코드의 의미를 깊이 파고들지 않고, 단계별로 사용법을 배워보겠습니다.
>>> from django import template >>> t = template.Template('My name is {{ name }}.') >>> c = template.Context({'name': 'Adrian'}) >>> print(t.render(c)) My name is Adrian. >>> c = template.Context({'name': 'Fred'}) >>> print(t.render(c)) My name is Fred.
위의 코드를 보면 해보고 싶은 마음이 생길 수도 있는데, 그 결과는 두 번째 줄에서 오류가 발생했습니다. 일반적으로 발생할 수 있는 유일한 오류는 'DJANGO_SETTINGS_MODULE' 오류입니다. 이는 Django가 DJANGO_SETTINGS_MODULE 환경 변수를 검색할 때 settings.py에 설정되어 있고 Python 셸을 직접 시작하면 어떤 구성인지 알 수 없기 때문입니다. 사용할 파일. 예를 들어 mysite가 Python 검색 경로에 있다고 가정하면 DJANGO_SETTINGS_MODULE을 'mysite.settings'로 설정해야 합니다. 따라서 환경 변수를 설정하는 수고를 피하려면 다음과 같이 Python 셸을 시작해야 합니다.
python Manage.py Shell
이렇게 하면 익숙하지 않은 환경 변수를 구성하는 수고를 덜 수 있습니다.
>>> from django import template #从django中导入template对象 >>> t = template.Template('My name is {{ name }}.') #使用template对象的Template()方法 >>> c = template.Context({'name': 'Adrian'}) #使用template对象的Context()函数给赋值,比如name的值就是Adrian,Context()的()里面是一个字典 >>> print(t.render(c)) #渲染模板,也就是讲Context赋值后的name的值Adrian替换上面Template()中的{{name}}并输出 My name is Adrian. >>> c = template.Context({'name': 'Fred'}) >>> print(t.render(c)) My name is Fred.
위의 예에서 볼 수 있듯이 템플릿 사용에는 세 단계가 있습니다. 1. 템플릿 함수를 호출합니다. 2. 컨텍스트 함수를 호출합니다. 3. 렌더링 함수를 호출합니다. 그렇게 간단합니다.
몇 가지 코드를 통해 Context() 함수에 대해 알아보겠습니다.
#代码段1: >>> from django.template import Template,Context >>> t=Template('hello,{{name}}') >>> for name in ('A','B','C'): ... print(t.render(Context({'name':name}))) ... hello,A hello,B hello,C #代码段2: >>> from django.template import Template,Context >>> person={'name':'Thunder','age':'108'} >>> t=Template('{{person.name}} is {{person.age}} years old!') >>> c=Context({'person':person})#后面的这个person是一个字典 >>> t.render(c) 'Thunder is 108 years old!' #代码段3: >>> from django.template import Template,Context >>> t=Template('Item 2 is {{items.2}}')#items.2的意思是调用items列表的第3个元素,因为列表的索引是从0开始的 >>> c=Context({'items':['Apple','Banana','Orange']}) >>> t.render(c) 'Item 2 is Orange'
위 세 가지 코드를 잘 보시면, 그냥 추론을 하고 계시나요? 또한 기본적으로 변수가 없으면 템플릿 시스템은 해당 변수를 빈 문자열로 표시하고 실패를 나타내기 위해 아무 작업도 수행하지 않습니다.

Tomergelistsinpython, youcanusethe operator, extendmethod, listcomprehension, oritertools.chain, 각각은 각각의 지위를 불러 일으킨다

Python 3에서는 다양한 방법을 통해 두 개의 목록을 연결할 수 있습니다. 1) 작은 목록에 적합하지만 큰 목록에는 비효율적입니다. 2) 메모리 효율이 높지만 원래 목록을 수정하는 큰 목록에 적합한 확장 방법을 사용합니다. 3) 원래 목록을 수정하지 않고 여러 목록을 병합하는 데 적합한 * 운영자 사용; 4) 메모리 효율이 높은 대형 데이터 세트에 적합한 itertools.chain을 사용하십시오.

join () 메소드를 사용하는 것은 Python의 목록에서 문자열을 연결하는 가장 효율적인 방법입니다. 1) join () 메소드를 사용하여 효율적이고 읽기 쉽습니다. 2)주기는 큰 목록에 비효율적으로 운영자를 사용합니다. 3) List Comprehension과 Join ()의 조합은 변환이 필요한 시나리오에 적합합니다. 4) READE () 방법은 다른 유형의 감소에 적합하지만 문자열 연결에 비효율적입니다. 완전한 문장은 끝납니다.

pythonexecutionissprocessoftransformingpythoncodeintoExecutableInstructions.1) the -interreadsTheCode, ConvertingItintoByTecode, thethepythonVirtualMachine (pvm)을 실행합니다

Python의 주요 특징은 다음과 같습니다. 1. 구문은 간결하고 이해하기 쉽고 초보자에게 적합합니다. 2. 개발 속도 향상, 동적 유형 시스템; 3. 여러 작업을 지원하는 풍부한 표준 라이브러리; 4. 광범위한 지원을 제공하는 강력한 지역 사회와 생태계; 5. 스크립팅 및 빠른 프로토 타이핑에 적합한 해석; 6. 다양한 프로그래밍 스타일에 적합한 다중-파라 디그 지원.

Python은 해석 된 언어이지만 편집 프로세스도 포함됩니다. 1) 파이썬 코드는 먼저 바이트 코드로 컴파일됩니다. 2) 바이트 코드는 Python Virtual Machine에 의해 해석되고 실행됩니다. 3)이 하이브리드 메커니즘은 파이썬이 유연하고 효율적이지만 완전히 편집 된 언어만큼 빠르지는 않습니다.

USEAFORLOOPHENTERATINGOVERASERASERASPECIFICNUMBEROFTIMES; USEAWHILLOOPWHENTINUTIMONDITINISMET.FORLOOPSAREIDEALFORKNOWNSEDINGENCENCENS, WHILEWHILELOOPSSUITSITUATIONS WITHERMINGEDERITERATIONS.

Pythonloopscanleadtoerrors likeinfiniteloops, modifyinglistsdizeration, off-by-by-byerrors, zero-indexingissues, andnestedloopineficiencies.toavoidthese : 1) aing'i


핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

MinGW - Windows용 미니멀리스트 GNU
이 프로젝트는 osdn.net/projects/mingw로 마이그레이션되는 중입니다. 계속해서 그곳에서 우리를 팔로우할 수 있습니다. MinGW: GCC(GNU Compiler Collection)의 기본 Windows 포트로, 기본 Windows 애플리케이션을 구축하기 위한 무료 배포 가능 가져오기 라이브러리 및 헤더 파일로 C99 기능을 지원하는 MSVC 런타임에 대한 확장이 포함되어 있습니다. 모든 MinGW 소프트웨어는 64비트 Windows 플랫폼에서 실행될 수 있습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

Dreamweaver Mac版
시각적 웹 개발 도구

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

드림위버 CS6
시각적 웹 개발 도구