Как программно получить информацию из этого тела запроса в Django - PullRequest
0 голосов
/ 09 февраля 2019

Я пытаюсь получить имя файла из тела запроса.Я могу напечатать тело запроса ... Однако я не могу получить от него никакой информации.программно

Кроме того, очевидно, что оно не в формате json, и я не могу использовать решение по этим ссылкам - Попытка разобрать `request.body` из POST в Django

Ниже приведена копия тела запроса из request.read

b'------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="fileItem"; filename="IMG_6427.ico"\r\nContent-Type: image/vnd.microsoft.icon\r\n\r\n\x00\x00\x01\x00\x01\x00\x18 \x00\x00\x01\x00 \x00\xa8\x0c\x00\x00\x16\x00\x00\x00(\x00\x00\x00\x18\x00\x00\x00@\x00\x00\x00\x01\x00 \x00\x00\x00\x00\x00\x00\x0c\x00\x00\x12\x0b\x00\x00\x12\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x006<F\xff\x89\x84\x84\xffD76\xff\x85\x87\x85\xffKac\xff9NR\xff)67\xff\x19$+\xff&0>\xff\x10\x14\x16\xff\x08\r\r\xff\x04\t\t\xff\x0c\x10\x12\xff\x12\x1d\x1e\xff\x0c\x18\x17\xff\x08\r\r\xff\x05\x06\x07\xff\x06\x01\x01\xff\x1c)4\xff?b\x81\xffC_{\xffEUi\xffN^q\xffQf~\xffo/1\xffS\x18\x19\xffNFT\xff~\x81\x8c\xffi\x86\x91\xffC^i\xffUnu\xff?NT\xff+-4\xff055\xffG\x1f\x1d\xff3\x1d\x1e\xff\x1d&,\xff\x1f\'1\xff\x07\x0f\x0c\xff\x0c\x15\x15\xff\x08\t\n\xff\x08\x06\x08\xff!0=\xff\x1a",\xff \'3\xff/:K\xffuH>\xffpMM\xff\xa3*$\xffk"!\xffS$*\xff^[m\xffh\x87\xa1\xffLh\x83\xffr\x99\xb6\xff\x9d\xcf\xe8\xffz\x9e\xab\xffBEJ\xffo07\xff[06\xff8=I\xff=KZ\xff0GT\xff\x13\x19\x1b\xff\x04\x01\x00\xff\x18$+\xffMr\x91\xffAWp\xff,/;\xff\x0b\x0c\r\xff\'\x1e\x1e\xff==H\xfft5<\xffO06\xff`\x1c\x18\xff=\x1e \xff))6\xffRp\x8c\xffh}\x99\xffty\x92\xffk\x81\x9a\xffTRe\xff\x8433\xffdKR\xffKSc\xffE\\s\xffE^u\xff\x13\x15\x1a\xff\x13\x13\x16\xff5HZ\xffNo\x8d\xffM_y\xff?FX\xff\x0f\x14\x14\xff\x12\x19\x1f\xff!&2\xff_N`\xff\x8d13\xffz$!\xff9\x13\x14\xffuw~\xff\x81\x95\xab\xffay\x94\xffcz\x9d\xff^e}\xffcOb\xffe(\'\xffgP[\xffl}\x94\xffEYo\xff\x15\x16!\xff\x06\x03\x02\xff\')1\xff&0>\xff",:\xff5;K\xff03>\xff45@\xffBL`\xff9@R\xff?Ob\xffj).\xff},,\xffJ%*\xffnlu\xffiho\xffcjv\xff@DS\xff8-4\xffV5<\xffK((\xffR9D\xffx\x88\x98\xff\x1a",\xff\x03\x00\x02\xff\x06\x04\x06\xff$$-\xff@Vl\xff-;J\xff#\x1f\'\xff\'+3\xff(2=\xff",7\xff\'*5\xffPju\xffKOW\xff=%,\xffQ(,\xffB\x1d"\xff3\x10\x10\xff:\x1d\x1c\xff?"\x1e\xffD#\x1d\xffD\x1e\x19\xffI\x1f\x1d\xffO6=\xffLLU\xff\x07\t\x0c\xff\x07\x03\x05\xff\x0b\x06\x08\xff\x05\x06\x07\xff(\x18\x1c\xffM6A\xff49E\xff9:E\xff;1:\xff9+4\xff=*0\xffGQ`\xffER_\xff`6>\xffX(*\xff_%\'\xffV\x1f\x1f\xff0\x15\x14\xff9\x1e\x1d\xffH!\x1c\xffJ#"\xff6\x17\x17\xff)\x1a\x1b\xff\x1f\x1e%\xff\x05\x05\x0e\xff\x0c\x05\x05\xff\x02\x06\x08\xffE\x16\x15\xff\x87!\x18\xff?\x19\x1a\xffH#0\xffn1<\xff\\\'.\xffZ38\xffham\xffA`x\xffZL[\xffn4<\xffO\'0\xff8!&\xffX&+\xff[,1\xff5\x1e#\xff+\x14\x15\xff8 %\xff/\x19\x1b\xff#\x14\x14\xff\x1a\x14"\xff\x0c\x10%\xff\x04\x03\x02\xff\x1c\r\x0e\xff\x84\'\'\xffp%&\xff9*.\xff\x82;:\xffp#*\xffzAG\xffH?L\xff2:J\xffC]r\xffQHU\xffT\'-\xff&\x1c%\xff"\x1e&\xff$\x1b"\xffV3:\xffq8>\xffV&(\xffN!!\xffK%(\xffG+.\xffL+6\xff&\'>\xff\x11\x05\x06\xff"\x0c\n\xffu..\xffj\'\'\xff\x90JF\xff\xb0WP\xffsHT\xff\x8e\x9e\xae\xffAGQ\xff3.2\xffPax\xff0=H\xff\x1f!&\xff&#)\xff\'\x1e%\xff(\x1f&\xff#\x1c#\xff,\x1b!\xff@$\'\xffL#$\xff=%*\xffg \x1f\xff^"%\xffM\x1b"\xff\x83\x1d\x1b\xff\x1d\x0f\x10\xff<\x0f\x0e\xffl!\x1c\xffq+\'\xffN25\xffBOZ\xffGcq\xff=<B\xff758\xffL`t\xffK[n\xff7AL\xff&%+\xff$$\'\xff&\x1f&\xff+\x1d%\xff\'\x1e%\xff+\x1c!\xff,\x1d!\xff7*/\xffW!#\xff~\x1f\x19\xff\x8b\x18\x11\xffm"#\xffi\x1d\x1a\xff2\x1a\x1f\xffg,-\xff>6:\xff9;B\xff:59\xff97:\xff87=\xff:7=\xffOau\xffPaq\xffQbr\xffBLW\xff/(/\xff""%\xff\'#%\xff&\x1d$\xff*\x1c$\xff%\x1e%\xff=!$\xffO),\xffW%(\xff\\%%\xffQ\x1c\x1c\xff5\x17\x19\xff;\x1f)\xff8\'/\xff>@E\xff?<B\xff;=B\xff:<A\xff;:@\xff;:@\xffPcu\xffQbr\xffRcq\xffNer\xfftLT\xffU37\xff##&\xff#\x1f!\xff%\x1e%\xff%\x1c#\xff\'\x1c!\xff^(*\xff{36\xffI#&\xff$\x12\x16\xff!\x11\x15\xff%\x13\x17\xff=8>\xff@BI\xff>?F\xff=>E\xff<=D\xff<=D\xff;<C\xffRew\xffSes\xffTes\xffMfs\xffyWb\xff\xabW_\xffxIO\xff0(,\xff\x1f\x1e$\xff\'$*\xff+ %\xff.\x1e"\xff\x7f$ \xffE\x15\x17\xff/\x13\x16\xff/ $\xff<>E\xffFLT\xffDHP\xffBFN\xffBDL\xff@BJ\xff>@G\xff>?F\xffThw\xffVhv\xffVgt\xffVmz\xfflXb\xff\xac>=\xff\x96?@\xffc)+\xff/!"\xff\x1c!\'\xff"#*\xff+&,\xffo23\xffP !\xffM>B\xffR[a\xffT]d\xffMS[\xffJPX\xffIOY\xffGMW\xffEKU\xffCIS\xffBFN\xffXjx\xffXjx\xffZkx\xff[o}\xffeaj\xff\x92($\xffj##\xffV #\xff\x82/-\xffv1+\xff+&*\xff# &\xff504\xffXag\xffdsy\xff`kr\xffYdk\xffU^e\xffQZa\xffNV`\xffMU_\xffNT^\xffLR\\\xffINZ\xff[m{\xff[m{\xff\\mz\xffat\x80\xffY\\h\xffW&+\xffO),\xffI*0\xff\xac3-\xff\xc3:-\xff{51\xffI57\xffotz\xffhy\x7f\xffdpw\xffcov\xff`ls\xff\\gn\xffZcj\xffW`g\xffU]g\xffS[e\xffRXb\xffOU_\xff[o}\xff^p~\xff_p}\xffcv\x82\xffcis\xffX5<\xffL.6\xffV&(\xff\x8e\'!\xff\x9a,#\xffa \x1b\xff^[a\xffm\x80\x88\xffiu|\xffgv|\xffgsz\xffdpy\xffbnu\xff`kr\xff^gn\xffZcj\xffW`g\xffU]g\xffRZd\xff`r\x80\xff`r\x80\xffct\x81\xffdw\x83\xffpz\x85\xff\xa5\\b\xffx7<\xffI\'+\xff[%\'\xff[\'$\xffaRV\xffiz\x80\xffl{\x81\xffl{\x81\xffl{\x81\xfflx\x7f\xffiu~\xffhr|\xffeoy\xffbmt\xff^ip\xff\\el\xffX`j\xffV^h\xffau\x83\xffdv\x84\xfffy\x85\xffh{\x87\xffqy\x83\xff\xac]d\xff\xb897\xff\x85 \x1a\xffX()\xff\x81KM\xffu\x83\x8c\xffl}\x83\xffn}\x83\xffm|\x82\xffl{\x81\xffmy\x80\xfflx\x7f\xfflw~\xffjt~\xffgq{\xffdov\xff`kr\xff^gn\xffZbl\xffd{\x88\xffhz\x88\xffj}\x89\xffl\x7f\x8b\xffrz\x84\xff\xb6U\\\xff\xc56$\xff\xe9#\t\xff\xc45)\xff{ry\xffm\x80\x88\xffp|\x83\xffp\x7f\x85\xffr~\x85\xffn}\x83\xffo{\x82\xffnz\x81\xffmy\x80\xffmy\x80\xfflw~\xffis}\xffeoy\xffdlv\xff`hr\xffi}\x8b\xffl~\x8c\xffm\x7f\x8d\xffn\x83\x8f\xff|z\x83\xff\xc2[f\xff\xcf(\x1c\xff\xe5$\x13\xff\xa6[\\\xffj\x82\x8b\xffr~\x87\xffq\x80\x86\xfft\x80\x87\xfft\x80\x87\xffq\x80\x86\xffp\x7f\x85\xffo~\x84\xffp|\x85\xffp|\x83\xffo{\x82\xffmy\x80\xffjt~\xffgq{\xffdnx\xffk\x82\x8f\xffn\x82\x90\xffq\x83\x91\xffn\x87\x94\xff\x96~\x85\xff\xc9A>\xff\xd1\x1a\t\xff\xd2H?\xff\x86\x83\x8f\xffp~\x87\xfft\x80\x89\xffr\x81\x87\xffs\x82\x88\xfft\x83\x89\xffs\x82\x88\xffs\x82\x88\xffr\x81\x87\xffq\x7f\x88\xffr~\x87\xffr~\x87\xffq}\x86\xffnz\x83\xfflv\x80\xffis~\xffm\x85\x94\xffp\x87\x94\xffu\x87\x95\xffq\x8b\x99\xff\x9f{\x84\xff\xc40\'\xff\xdb2 \xff\xb3rw\xfft\x84\x8e\xffu\x7f\x89\xffs\x81\x8a\xffu\x81\x8a\xfft\x83\x89\xffw\x83\x8a\xffu\x84\x8a\xffw\x83\x8a\xffu\x84\x8a\xfft\x82\x8b\xffs\x81\x8a\xffs\x7f\x88\xffq\x7f\x88\xffp|\x85\xffmy\x82\xffkw\x80\xffn\x88\x96\xffr\x88\x97\xffx\x89\x97\xffr\x8d\x9e\xff\xb1gh\xff\xd0,\x1d\xff\xddNJ\xff\x84}\x87\xfft\x81\x8c\xffv\x82\x8b\xfft\x82\x8b\xffu\x83\x8c\xffv\x84\x8d\xffw\x86\x8c\xffy\x85\x8c\xffw\x86\x8c\xffw\x86\x8c\xffw\x85\x8e\xffv\x84\x8d\xfft\x82\x8b\xffs\x81\x8a\xffq\x7f\x88\xffo}\x86\xffnz\x83\xffn\x88\x96\xffr\x89\x96\xffw\x89\x97\xffy\x8d\x9c\xff\xbcGE\xff\xe4(\x19\xff\xc6z\x7f\xfft\x85\x92\xffx\x82\x8d\xffw\x82\x8d\xffu\x83\x8c\xffv\x84\x8d\xffw\x85\x8e\xffx\x87\x8d\xffx\x87\x8d\xffy\x88\x8e\xffy\x87\x90\xffy\x87\x90\xffx\x86\x8f\xffw\x85\x8e\xfft\x84\x8d\xffr\x82\x8b\xffp\x80\x89\xffo\x7f\x88\xffn\x86\x95\xffr\x86\x94\xffs\x89\x98\xff\x8e\x82\x8b\xff\xd4&\x13\xff\xeaTI\xff\xa5\x8e\x99\xfft\x84\x8e\xffz\x84\x8f\xffv\x83\x8e\xffv\x84\x8d\xffw\x85\x8e\xffz\x86\x8f\xff{\x87\x90\xffy\x88\x8e\xffz\x89\x8f\xffz\x89\x8f\xffz\x88\x91\xffz\x88\x91\xffy\x88\x8e\xffv\x87\x8d\xffu\x85\x8e\xfft\x84\x8d\xffr\x82\x8b\xffl\x84\x93\xffr\x84\x92\xffn\x88\x95\xff\x95\x81\x8a\xff\xf6QE\xff\xdfwu\xff\x81\x8b\x96\xffx\x85\x90\xffx\x85\x90\xffw\x84\x8f\xffw\x85\x8e\xffw\x85\x8e\xffz\x86\x8f\xff{\x87\x90\xffy\x87\x90\xffz\x88\x91\xffz\x89\x8f\xffz\x88\x91\xffy\x89\x92\xff{\x89\x92\xffx\x88\x91\xffu\x88\x90\xfft\x87\x8f\xfft\x84\x8d\xffl\x82\x91\xffq\x83\x91\xffr\x83\x90\xff\xcawu\xff\xfbXE\xff\xbejh\xffs\x8a\x97\xffz\x85\x90\xffw\x84\x8f\xfft\x84\x8e\xfft\x84\x8e\xfft\x84\x8d\xffx\x86\x8f\xffx\x86\x8f\xffx\x86\x8f\xffy\x87\x90\xffz\x88\x91\xffy\x89\x92\xffy\x89\x92\xffy\x89\x92\xffz\x8a\x93\xffw\x8a\x92\xffv\x89\x91\xfft\x87\x8f\xffk\x7f\x8d\xffm\x81\x8f\xffv\x80\x8e\xff\xbc61\xff\xe36\x19\xff\x97cf\xfft\x8b\x98\xffy\x84\x8f\xffu\x85\x8f\xffu\x85\x8f\xffr\x84\x8e\xffs\x86\x8e\xffu\x85\x8e\xffv\x86\x8f\xffw\x87\x90\xffw\x87\x90\xffx\x88\x91\xffy\x89\x92\xffz\x8a\x93\xffx\x8b\x93\xffy\x8c\x94\xffx\x8c\x94\xffw\x8b\x93\xffv\x8a\x92\xffk\x7f\x8d\xffl~\x8c\xffl\x82\x91\xff\x83_h\xff\x86^f\xffu\x87\x95\xfft\x83\x90\xffu\x85\x8f\xffs\x85\x8f\xffr\x84\x8e\xffr\x84\x8e\xffs\x85\x8f\xffu\x85\x8e\xfft\x87\x8f\xffw\x87\x90\xffx\x88\x91\xffy\x89\x92\xffz\x8a\x93\xffx\x8b\x93\xffy\x8c\x94\xffy\x8d\x95\xffz\x8e\x96\xffz\x8e\x96\xffw\x8d\x95\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="name"\r\n\r\nIMG_6427.ico\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="lastModified"\r\n\r\n1546156330437\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="lastModifiedDate"\r\n\r\nSun Dec 30 2018 15:52:10 GMT+0800 (Hong Kong Standard Time)\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="webkitRelativePath"\r\n\r\n\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="size"\r\n\r\n3262\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="type"\r\n\r\nimage/vnd.microsoft.icon\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="slice"\r\n\r\nfunction slice() { [native code] }\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="name"\r\n\r\nIMG_6427.ico\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="raw_filename"\r\n\r\nIMG_6427.ico\r\n------WebKitFormBoundary37UfK4cafPJyv12M\r\nContent-Disposition: form-data; name="filetype"\r\n\r\nimage/vnd.microsoft.icon\r\n------WebKitFormBoundary37UfK4cafPJyv12M--\r\n' 

def post(self, request, *args, **kwargs):
    print("request.read",request.read())
    body_unicode = request.body.decode('utf-8')
    body_data = json.loads(body_unicode)
...