A, 장고 양식 (양식) 요청 :
기본 양식 양식의 내용을 얻기 위해 요청을 GET 때 엽니 다.
점 POST 요청, 양식 제출 양식을 제출할 때.
위의 차이의 내용을 작성하는 양식을 얻으십시오 :
django.shortcuts 가져 오기 HttpResponse에에서 django.shortcuts가 가져 오기에서 렌더링, 리디렉션 DEF 로그인 (요청) : # 요청는 사용자가 제출 한 모든 정보가 들어 있습니다. = ERROR_MSG '' IF request.method == '는 POST': 사용자 = request.POST.get ( '사용자', 없음)를 사용하는 방법을 가져 오기 // '어떤 사용자 키 할당 없음이있는 경우, 사용자의 키를 PWD = 요청 .POST.get ( 'PWD'없음)을 얻을 // 입력 객체 속성 명 사용자와 단일 형태 PWD 방법이다. 사용자 == '123'IF 및 PWD == '123456' 리디렉션 ( 'http://www.baidu.com')를 반환 다음 다른 ERROR_MSG = '사용자 이름이나 암호' 제 (렌더링 요청을 반환 '을 login.html을 '{'ERROR_MSG ': ERROR_MSG })
두 {{키}}
키에 지정된 {{}} HTML 파일이 사전 views.py 투과 키 값에 대응하는 클라이언트에 표시되는 HTML이 일반적이다.
HTML
<SPAN> ERROR_MSG {{}} <SPAN>
세, HTML 데이터 사전과 목록을 읽어
사전 : 사용 코드 키 읽기 읽기 :. Dict_name.key을
목록 : 인덱스 읽기, list_name.0를 사용합니다.
views.py
데프 (요청)을 보여 DICT_NAME = { '이름을': '樱', '나이'19 '메일': '[email protected]', '즐겨 찾기': [ '축구', '노래', '요리사 ']} (DICT_NAME를 home.html을'반환 요청을) 렌더링 '
사전 HTML :
<p> dictname.name {{}} </ p>樱\\ <p> dictname.age {{}} </ p> 19 \\ <p> dictname.mail {{}} </ p> \\ [email protected]
HTML 목록
<p> list_name.0 {{}} </ p> 축구 \\ <p> list_name.1 {{}} </ p> 노래 \\ <p> list_name.2 {{}} </ p> \\ 쿡
네, for 루프에서 HTML :
{마커 루프, 그리고 {%의 ENDFOR % 사용} End 문주기를} %% 사용
{k에 대한 % DICT_NAME %에서 V} \\ HTML内容 <p> {{K}} {{V}} </ p> {% ENDFOR %}
//views.py (요청 'index.html을'{[ 'A', 'B', 'C'] LIST_NAME '}) 렌더링 반환 {LIST_NAME %로의 I %} <p> {{I }} </ P>를 // B, C {%의 ENDFOR의 %}
다섯, HTML주기의 경우 :
{% 만약 조건 %} 1. HTML 콘텐츠 \\ <P> K {} {} {{V}} </ P> {%} %의 ELIF 조건 2 ... {다른 %%} ... {%의 ENDFOR %}
여섯, views.py GET HTML 템플릿 들어오는 데이터
데이터의 HTML을 방법은 제출 일반적으로 두 가지 종류의 사용, 많은이 있습니다 : POST와 GET
1, POST 요청 방법 : 데이터를 갱신, 수정 일반적이다.
2, 방법 요청을 GET : HTTP : 예를 들어, URL이 표시 제출 \\ localhost를 \ 얼굴을 \ ID = 1 이름 = 데이비드, 일반적으로 서버에서 데이터를 요청하는 데 사용?
3, 其它의 .put, 삭제, 머리, 옵션 ....
4, 폼 형태의 지정된 데이터 업로드 타입 ->에 enctype = '다중 / 폼 데이터'
views.py 데이터 수집 방법
1, POST.get ( '이름', '기본'), 고유 값 수집 요소, 그렇지 않은 경우는, 디폴트 값이 할당됩니다
2 POST.getlist ( '이름', '디폴트 값') 다치 요소의 목록은 그렇지 않다면, 디폴트 값을 할당
get_Data DEF (요청) get_post request.POST.get = ( '_ 이름')는 사용자 _ #라는 HTML 요소의 값 <INPUT 이름 = "사용자 _ '> 가져 get_post request.POST.get = ('_ 이름 '없음) # 사용자 _ 요소 발견되지 없음 리턴 get_list request.POST.getlist = ( '호의') # 얻었다 체크 박스를 HTML의 여러 값 get_get request.GET.get = ( '_ 이름') #의 문헌 get_get = request.GET.get ( '_ 이름'없음) # 수득 된 get_get request.GET.getlist = ( '_ 이름')
3 FILES.get는 ( '이름') , 업로드 오브젝트 파일을 취득하는 기본 파일 이름,
obj.name 파일 이름, 업로드
obj.chunks ()를 반복자 데이터 블록을 판독 루프에 대한 모든 데이터를 읽을 , obj.chunks에 대한 R ()
GET_FILE DEF (요청) : OBJ = request.FILES.get를 ( 'file_obj') F = 열기 (obj.name은 '+ WB') # 파일 이름 명명을 업로드 할 수 있습니다. I에 대한 obj.chunks () : # 반복 루프는 데이터 청크를 판독한다. f.write (I) f.close ()
세븐, views.py 기능은 URL을 반환합니다 :
1, 렌더링 : HTML 템플릿 경로를 형식은 : (요청, 'HTML 템플릿 이름', 전송 사전) 렌더링
2, 리디렉션 : 전체 URL을 반환 형식 : 리디렉션 ( 'http://www.baidu.com')
3, HttpResponse에는 다음 형식의 HTML 문자열을 반환 HttpResponse에를 ( '<p>이 중 하나의 예입니다 </ P>')
show_data DEF (요청) : V는 = 1234 점프 #의 국 반환 렌더링 (요청, 'index.html을' , { "DICT"V}) 역 # 점프 외부 반환 리디렉션 ( 'http://www.baidu.com ') # 직접 HTML 문자열을 반환합니다. HttpResponse에 반환 ( '<p> 경고! </ P>')
파일 업로드 :
urls.py
발 오기 django.conf.urls의 URL 오기 django.contrib ADMIN에서 index.views 오기 의 urlpatterns = [ URL (R & LT 'ADMIN ^ /'admin.site.urls) URL은 (R & LT는 index.views '$ ^ MAINS'. 메인), #에 http : // IP / mians는 views.py 인덱스 디렉토리에서 전원의 기능으로 이동 ## URL (R '', index.views.mains ), #에 http : // IP를, 점프 메인 인덱스 디렉토리에 views.py에서 함수 (R '^ 전원 / 최대 URL $', index.views.rev_file) # r에 '^ $' 모든 단어의 주소를 포함, 그렇지 않으면, 말 ^ $ 정의 시작 스티어링 혼란 ]
index.html을
은 {{}}, {%%} 템플릿 언어를 사용합니다. 동시 업로드
<! DOCTYPE HTML> <HTML LANG = "EN"> <head> <메타 문자 집합 = "UTF-. 8"> <제목> 제목 </ 제목> </ head> <body> <form 조치 =에 enctype "최대"= "다중 / 폼 데이터"방법 = "POST"> 행동 = "최대"현재 URL의 최대 + 나타낸다; // 액션, 루트 디렉토리 + 최대를 위해 "업 /"= URL을 행동으로 이동 //에 enctype, 양식을 파일 형태로 수신 될 수 <INPUT 유형 = "텍스트"이름 = "USER_NAME"자리 = "... 입력 이름"/> <INPUT 이름 = "up_file"유형 = "파일"/> = "파일"// 유형, 나타내는 데이터 파일 업로드 <p> 분류하여 : 소프트웨어 <input 타입 = "체크 박스 "값 ="技术'NAME = "f_type"> HTML <input 타입 = "체크 박스"값 = "HTML"NAME = "f_type"> 编程<input 타입 = "체크 박스"값 = "编程'NAME ="f_type " > </ p> //创建多选框 <INPUT 유형 = 값 = "제출", "제출"> </ FORM> {%} // f_name %의 사용은 파일 업로드, 파일 업로드, 표시 정보 여부를 판단되는 경우 경우 <P> <스팬 스타일 = " 글꼴 스타일 : 기울임 꼴 "> {{u_name }} </ SPAN>, 파일 :! {{f_name}} 성공 </ P> 업로드 카테고리 : 선택한 파일을 읽기 위해 // {F_TYPE의 %에 사용 I의 %를} 분류는 {{}} I {%} ENDFOR % {%} % 다른 업로드되지 // 파일 큐 귀하가 <P> <스팬> 파일을 업로드하지 않습니다! </ SPAN> </ P> {%} ENDIF % </ BODY> </ HTML>
테스트 / views.py
(가)에서 가져 오기를 렌더링 django.shortcuts 가져 오기 운영 체제의 . #은 당신의 현재 뷰 배경 화면 만들기 : DEF MAINS (요청) 처음 #, URL을 열어 index.html 페이지는 입력 (가) 렌더링 반환 (요청, 'index.html을') DEF (요청) rev_file : # 리셉션 양식 서식 데이터 제출 f_name를 = ' u_name =' F_TYPE = ' IF request.method =='는 POST ' f_obj = request.FILES.get ('up_file '없음) # 오브젝트 파일을 가져, 인쇄 (f_obj) 파일이 __repr__ 또는 __str__을 정의하기 때문에 파일 이름,하지만 실제 목적이며, IF f_obj : 당신이 파일을 업로드 한 경우 # f_name = f_obj.name u_name = request.POST.get ( '_ 이름', 없음) f_type request.POST.getlist = ( 'f_type') #의 체크 박스 또는 여러 데이터 타입 옵션 옵션 얻을 F = 개방 (os.path.join ( '업 'f_name) 'WB +') # 업로드 파일 manage.py 동일한 디렉토리 폴더 f_obj.chunks ()에 대한 I : #chunks (), 반복자 사용 읽어 f.write를 (I) f.close () ({: f_name, 'u_name': u_name, '이 F_TYPE'는 F_TYPE 'f_name'} 'index.html을'요청) 렌더링을 반환 # 다시 인덱스를. 문장의 내용이 나타나는 경우 HTML 콘텐츠는하지만, 브라우저의 주소 변경, 및 콘텐츠 될 것입니다