파이썬 일 67 경단 프레임 방식 (요약) 이전과 이후에 데이터 인코딩 형식, Wsgiref 및 uwsgi, 전송

  프레임을 보여줍니다 ## 장고를

 

  전후 단부 ## 데이터를 송신하는 형식을 코딩

#의 인코딩 포맷 데이터 전방 및 후방 단부를 송신 
    . 1 .urlencoded 
     2 .formdata 
     3. 신청 / JSON

  아약스 양식에서 ##과 선단에서 파일을 다시 보내

기본 인코딩 형식은 문서 (과거에 전송 된 파일 이름 만) 발행 urlencoded를 지원하지 않는 형태의 양식 
은 데이터 형식의 사용자 이름에 해당 = 비밀번호 123 제이슨 

request.POST는 데이터를 urlencoded로 데이터 형식을 구문 분석   
formdata 장고 데이터를 파일에 도움이 될 것입니다 request.FILES는 파일 전송하도록 설계된 내부에 꺼내 


도 urlencoded로 인코딩 형식 아약스 기본 제출 
장고는 데이터 전송 시간 아약스 JSON 형식으로 아무것도하지 않습니다 때 
수동으로 할 수 request.body에 바이너리 형태의 데이터 디코딩 플러스 해당 역 직렬화 데이터 사전 형식을 얻을 수 
  JSON 형식 데이터 전송 Ajax를 
  $의 아약스를 ({
            URL : '', // 제출을 향해있는 현재 페이지의 기본 URL 주소를 쓰지 않는다
            POST : 유형의 ''
            의 contentType을 '응용 프로그램 / JSON ',
            데이터 다음 JSON.stringify ({'이름 ':'제이슨 ','csrfmiddlewaretoken ':'{csrf_token} {}})
            성공 :기능 (데이터) {
                경고 (데이터)
            }
        }) Ajax를 이용하여 송신 JS 내장 파일 객체 FormData
DEF의 인덱스 (요청) :
     IF request.method == ' POST가 ' :
         인쇄 (request.POST의)
         인쇄 (request.FILES)
         # file_obj = request.FILES.get ( 'myfile을') 
        #의 인쇄 (file_obj.name) #보기 파일 오브젝트의 현재 파일명 
        # 1 (아닌 기본 인코딩 urlencoded를 있지만 = enctype은 "다중 / 폼 데이터">에 수정 참고) 형태의 데이터를 통해 통과 로컬 파일 서버에 기록되어 형성 
        # , 열기 (file_obj.name F AS 'WB')는 : 
        #      라인은 file_obj에서 : 
        #의          f.write (라인) 

        # Ajax를 이진 데이터가 request.body에서 별도의 데이터를 통해 전송하고, 상기 데이터 사전을 얻기 위해 복호화 될 수있다 다음 직렬화 포맷이다 
        #의 전단 ( request.body) 
        # bytes_str = request.body
        #의 입술의 json.loads = (bytes_str.decode ( "UTF-8")) 
        #에 인쇄 (입술, 유형 (입술)) 
    반환 렌더링 (요청 ' index.html을 ' )
코어 코드의 후단
<! DOCTYPE HTML> 
<HTML> 
<HEAD> 
    <메타 문자 집합 = " UTF-8 " > 
    <제목> 제목 </ 제목> 
    <스크립트 SRC = " https://cdn.bootcss.com/jquery/3.4.1/ jquery.min.js " > </ script> 
</ head> 
<body> 
{ # <form 조치 =" "METHOD ="POST "에 enctype ="multipart / form-data "로> #} 
{ #     {csrf_token %의 %} #} 
{ #     <p> 자명 <입력 유형 = "텍스트"이름 = "이름"> </ p> #} 
{ #     <p> 암호 : <input 타입 = "패스워드 "NAME ="비밀번호 "> </ p> #} 
{ #     <p> 이미지 : <input 타입 ="파일 "NAME ="myfile을 "> </ p> #}
{ #     <INPUT 유형 = "제출"> #} 
{ # </ FORM> #}
 
<INPUT 유형 = " 파일 " 이름 = " myfile을 " ID = " D2 " > 
<버튼 ID = " D1 " > 점 I </ 버튼> 

<script> 
    $ ( ' #의 D1 ' ) .click (함수 () {
         // 의 사용과 필요한 경우 내장 된 객체 FormData 아약스 파일 전송 
        VAR formData = FormData 새 새 (); //이 생성하는 내장 객체
         // 내장 객체 formdata 보통 키 - 값 쌍을 전달할 수 있습니다, 당신은 또한 파일을 전송할 수 있습니다 
        formData을.(추가 ' 이름을 ', ' 제이슨 ' ); // 공통 키 - 값 쌍 
        formData.append ( ' 암호 ' , ' 123 ' );
         // 파일 전송 
        VAR fileObj = $ ( ' #의 D2 ' ) [0] .files [0] // 0 다음 파일 방법의 목록을 가져 내장 객체 기본 JS로 오브젝트 레이블 객체를 얻기 위해 인덱스 파일을 얻을로 이동 
        formData.append ( ' myfile을 ' ;, fileObj) 
        $ 아약스 ({ 
            : URL '' , // 쓰지 않는다 현재 페이지의 URL 주소를 향한 기본 제출은 위치 
            유형 : ' POST ' ,
             //파일 전송시 수동 아약스 두 가지 특별한 매개 변수를 지정해야합니다 
            contentType이를 : 거짓,   // formdata 어떤 인코딩 사용할 수 있습니다 코딩 내 자신을 사용하지 않는 
            processData : FALSE,   // 내 데이터 무엇인지를 처리하지 않는 브라우저를 에 어떤 
            데이터 : formData, 
            성공 : 기능 (데이터) { 
                경고 (데이터) 
            } 

        }) 
    })
 </ SCRIPT> 
</ BODY> 
</ HTML>
프런트 엔드 코드 샘플

 

 

 

   ## 페이지 캐시 지우기를 추가

 

 

추천

출처www.cnblogs.com/liangzhenghong/p/11226088.html