當前位置:首頁 » 文件管理 » djangopost文件上傳

djangopost文件上傳

發布時間: 2023-05-29 17:32:22

❶ django listview 怎麼使用post方法

方法/步驟

一:編輯:forms.py
#coding=utf-8 #指定編碼,要不文件中出現的中文會報編碼錯誤,因我代碼中出現了中文
from django import forms #從django中導入forms模塊

class HostAddForm(forms.Form): #定義HostAddForm的類(forms.Form)是固定寫法,照寫就是了
ip = forms.IPAddressField(label='主機IP') #定義ip文本框,如效果圖中的『主機IP』,IPAddressField 是說明IP欄位,與models.py上定義的一致,label='主機IP',是定義label標簽,如以下效果圖

port = forms.CharField(max_length=5,label='埠') #定義埠文本框,長度最大為5

要設置哪個欄位為可不寫,lamp兄弟連用required=False,如cpumun = forms.CharField(max_length=50,required=False,label='CPU核數')

二:編輯view.py

def hostadd(request): #定義hostadd
if request.method == "POST": #判斷是否使用了POST方法
fr = HostAddForm(request.POST) #如果是使用了POST方法,即就綁定到fr變數,HostAddForm是forms.py上定義好的類欄位,要一致
if fr.is_valid(): #判斷表單上傳進來的數據是否有效,如有效就執行下面的語句
print fr.cleaned_data['ip'] #這里是指可執行的代碼,我這里僅僅是列印出這個IP地址而已,在寫程序的時候,這里就可以替換成你要寫的代碼段了
return HttpResponse("OK") #執行完畢後,返回成功字樣
else: #如果不是使用POST方法,那麼執行以下代碼段
fr = HostAddForm() #定義HostAddForm()給變數fr,其實這里是空值來的,
return render_to_response('hostadd.html',locals()) #最後把所有變數返回給模板hostadd.html,在hostadd.html上把這些表單顯示出來

如果一個Form實體的數據是合法的,lampbrother它就會有一個可用的cleaned_data屬性。 這是一個包含干凈的提交數據的字典,我們要報取數據運殲的時候,就用這個,如上面代碼中的print fr.cleaned_data['ip']

三:編輯模塊文件 hostadd.html

<form action="" method="post">轎鉛
{{ fr }}<input type="submit" value="提交"閉悄好>
</form>

{{ fr }}標簽會把所有的表單內容都顯示出來,而且是用我們在forms.py上定義好的label標簽,我們也可以不這樣設置,在hostadd.html上自定義顯示吧,如下

<form action="" method="post">
IP地址:{{ fr.ip }} </br>
IP埠:{{ fr.port }}</br>
<input type="submit" value="提交">
</form>

這里的fr.ip fr.port ,ip,port跟上面forms.py上的欄位名是對應的

如果要檢測ip文本提交的數據是否合法,lamp兄弟連可以用{{ fr.ip.errors }}來獲取,如果不符合類型,會顯示相應的提示:

4
四:編輯urls.py文件
(r'^hostadd.html$',hostadd),

效果:

5
提升:
給某個欄位加上默認值,如我在IP欄位上,寫上默認為192.168.1.

from django import forms

class

❷ django post的文件上傳使用read為什麼是亂碼

改下編碼
def get_content(request):
content=request.POST["content"].encode('gb2312')
return HttpResponse(content)

❸ 如何限制Django的文件上傳速度

通過IPtables限制上傳也是不錯的方案。
You could write a customized upload handler or subclass current upload handler to mainly slow down receive_data_chunk() method in it. Or set a pdb breakpoint inside receive_data_chunk() and manually proceed the uploading. Or even simpler, try to upload some large file.

❹ 如何使用django restfulframework 實現文件上傳

給你一個我的代碼:

首先需要用下面的裝飾器把POST數據的解析器改為MultiPartParser,其中picture的file欄位是個FieField或者它的子類。

python">@api_view(['POST'])
@parser_classes((MultiPartParser,))
defupload_picture(request):
if"file"inrequest.FILES:
f=request.FILES["file"]
picture=Picture()
picture.file=f
picture.save()
returnResponse(data={"id":picture.id})

❺ 怎麼在 Django 中向另外的 ip 發送 Post 請求

一、需要用扒乎到的場景 在jQuery中使用$.post()就可以方便的發起一個post請求,在android程序中有時也要從笑仿伺服器春升悉獲取一些數據,就也必須得使用post請求了。
二、需要用到的主要類 在android中使用post請求主要要用到的類是HttpPost、HttpResponse、

❻ Django上傳原理求解

隨著網站運作,難免有些時候需要上傳文件。上傳文件自然是上傳到網站所在的伺服器,日積月累,慢慢地網站存儲空間越來越少。而且網站遷移和備份都不方便,使用這些資源時也佔用大量伺服器流量。

較好的解決方案是使用第三方存儲伺服器,例如七牛、阿里雲OSS、亞馬遜S3等。將文件都放到這些存儲伺服器,可以減少伺服器負擔。伺服器只剩下必要的靜態文件和代碼。


以阿里雲OSS為例,講解如何使用第三方存儲伺服器。(剛好最近用到這個,而且Django有其他人寫好的第三方庫)

首先,需要擁有OSS。這個去阿里雲購買即可。購買之後可得到密鑰等一系列信息。

接著,安裝oss2庫,該庫是Python對應oss的操作庫。


這樣設置,點擊文件鏈接,即可下載並且下載文件名是上傳的文件名。若你不是什麼類型文件都需要這么處理,可以判斷filename的後綴名加以處理。

❼ django上傳文件到遠程伺服器,怎麼整

使用的是WebClient而不是ftp

首先,我們先來定義一個類UpLoadFile,這個類就是文件上傳類。代碼如下:

public void UpLoadFile(string fileNamePath, string uriString, bool IsAutoRename)

{

int indexOf = 0;

if (fileNamePath.Contains(@"\"))

{

indexOf = fileNamePath.LastIndexOf(@"\");

}

else if (fileNamePath.Contains("/"))

{

indexOf = fileNamePath.LastIndexOf("/");

}

string fileName = fileNamePath.Substring(indexOf + 1);

string NewFileName = fileName;

if (IsAutoRename)

{

NewFileName = DateTime.Now.ToString("yyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + fileNamePath.Substring(fileNamePath.LastIndexOf("."));

}

string fileNameExt = fileName.Substring(fileName.LastIndexOf(".") + 1);

if (uriString.EndsWith("/") == false) uriString = uriString + "/";

uriString = uriString + NewFileName;

/// 創建WebClient實例

WebClient myWebClient = new WebClient();

myWebClient.Credentials = CredentialCache.DefaultCredentials;

// 要上傳的文件

FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);

//FileStream fs = OpenFile();

BinaryReader r = new BinaryReader(fs);

byte[] postArray = r.ReadBytes((int)fs.Length);

Stream postStream = myWebClient.OpenWrite(uriString, "PUT");

try

{

//使用UploadFile方法可以用下面的格式

//myWebClient.UploadFile(uriString,"PUT",fileNamePath);

if (postStream.CanWrite)

{

postStream.Write(postArray, 0, postArray.Length);

postStream.Close();

fs.Dispose();

}

else

{

postStream.Close();

fs.Dispose();

}

}

catch (Exception err)

{

postStream.Close();

fs.Dispose();

throw err;

}

finally

{

postStream.Close();

fs.Dispose();

}

}

好了,定義好這個類之後就看我們怎麼調用它了。在這里我給出一個例子:

單擊某個按鈕事件:

private void center_Click(object sender, EventArgs e)

{

//上傳文件

//得到文件名,文件擴展名,伺服器路徑

string filePath = filename.Text; //需要上傳的文件,在這里可以根據需要採用OpenFileDialog來獲取文件

string server = @"http://www.thylx.com/」; //上傳路徑

//創建webclient實例

WebClient myWebClient = new WebClient();

try

{

//使用Uploadfile方法上傳

UpLoadFile(filePath, server, true);

MessageBox.Show("上傳成功", "系統提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

}

catch (Exception ex)

{

MessageBox.Show(ex.Message);

return;

}

}

❽ django文件上傳的時候怎麼能加一個上傳進度的顯示

首先需要一個表單來讓用戶選擇要上傳的文件。

1 <form id="form_upload" action="/upload" method="POST">
2 <input type="file" name="picture" id="picture" />
3 <input type="hidden" id="X-Progress-ID" name="X-Progress-ID" value=""/>
4 <input type="hidden" id="id" name="id" value=""/>
5 <input id="form_submit_button" class="tp-button" type="submit" value="Submit" />
6 </form>
這里增加了兩個隱藏的輸入框,第一個是 『X-Progress-ID』,代表上傳 ID,這樣我們才能夠在伺服器端支持並發的上傳請求。稍後我們會看到,伺服器是如何處理這個值的。

然後還有一個隱藏輸入框 『id』,在我們的例子里代表菜品的編號。

我們將使用 Ajax 來發送 POST 請求,這樣表單便可以很好地集成在現代的網路界面中,同時包含一個進度條。我們打算使用 jQuery Form plugin 來實現這一點。

函數 ajaxSubmit() 將會幫我們搞定一切。

為上傳 ID 生成一個隨機字串,並用它設置輸入框的值。
需要指定一個用於上傳請求的 URL 和兩個回調函數:一個在請求前調用,另一個在請求完成後調用。

1 $('#X-Progress-ID').val('random string');
2 var options = {
3 dataType: 'xml',
4 url: '/upload?X-Progress-ID='+$('#X-Progress-ID').val(),
5 beforeSubmit: showRequest,
6 success: showResponse
7 }
8 $('#form_upload').ajaxSubmit(options);
showRequest 回調函數只需要像下面這么簡單就行了:

1 function showRequest(formData, jqForm, options) {
2 // do something with formData
3 return True;
4 }
在 showResponse 函數中,我們需要處理響應,並對它進行操作。在我的例子里,我處理了伺服器返回的帶有狀態值的 xml。

1 function showResponse(response) {
2 // do something with response
3 }
用戶按下提交的時候,我們希望顯示一個進度條,因此可以使用下面的 JS 代碼,向表單添加進度條。progressBar() 方法是 jQuery progress bar plugin 的一部分。

1 $('#form_upload').find('#form_submit_input').append('<span id="uploadprogressbar"></span<');
2 $('#form_upload').find('#uploadprogressbar').progressBar();
現在我們需要添加一個每隔幾秒運行一次的函數,來從伺服器獲取上傳進度,並相應地更新進度條。

為此,我們使用 setInterval() 向伺服器發出一個 GET 請求,獲取 JSON 格式的進度值。我們向伺服器傳送上傳 ID。當返回 null 值的時候,就可以知道上傳已經結束。

01 function startProgressBarUpdate(upload_id) {
02 $("#uploadprogressbar").fadeIn();
03 if(g_progress_intv != 0)
04 clearInterval(g_progress_intv);
05 g_progress_intv = setInterval(function() {
06 $.getJSON("/get_upload_progress?X-Progress-ID="
07 + upload_id, function(data) {
08 if (data == null) {
09 $("#uploadprogressbar").progressBar(100);
10 clearInterval(g_progress_intv);
11 g_progress_intv = 0;
12 return;
13 }
14 var percentage = Math.floor(100 * parseInt(data.uploaded) / parseInt(data.length));
15 $("#uploadprogressbar").progressBar(percentage);
16 });

❾ django怎麼上傳文件到資料庫

這個做法,是從新建資料庫開始的,對於新建資料庫 DJANGO會自己在 表名前加一個前綴,所以跟你自己建立的表是不一樣的。不信看下資料庫中的表。
至於怎麼用現有資料庫表,可以自己查下,DJANGO連接現有表的操作步驟,

熱點內容
note3簡訊加密 發布:2023-10-01 19:15:26 瀏覽:111
演算法中向量 發布:2023-10-01 19:11:38 瀏覽:520
lp地址轉換工作的是什麼伺服器 發布:2023-10-01 19:03:33 瀏覽:940
機器人都有哪些配置 發布:2023-10-01 19:03:28 瀏覽:219
linux圖形界面網路 發布:2023-10-01 19:00:04 瀏覽:237
android清除緩存代碼 發布:2023-10-01 19:00:00 瀏覽:383
觸發器sql游標 發布:2023-10-01 18:59:53 瀏覽:561
java核心技術卷1基礎知識 發布:2023-10-01 18:59:16 瀏覽:247
win10ftp更改默認路徑 發布:2023-10-01 18:17:21 瀏覽:779
無法修改c盤文件夾許可權 發布:2023-10-01 18:00:36 瀏覽:589