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

djangoajax上傳

發布時間: 2023-01-10 19:26:37

1. django實現文件上傳到伺服器

response = requests.post(PATH, data={'document_name': document_path, 'file': base64.b64encode(file.read())}) 這個方法其實就是將文件信息和轉成base64的文件發到伺服器那邊,那邊就是以下的方法存入伺服器

文件存入本地的方法

2. 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 });

3. 如何在Django使用ajax的POST

http://pythoner.org/wiki/43/
django中的ajax實現(POST)
請參考上文進行處理

4. Django 怎樣傳數據給HTML頁面的ajax

Django傳數據給HTML頁面的ajax的方法是通過load方法傳入的。
舉例:ajax.html
<html>
<head>
<meta charset="utf-8" />
<title>ajax test</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
jQuery(function($){
$('button').click(function(){
$name = $(this).attr('name');
$('#out').empty().load('/ajax_deal/',{ name : $name });
});
});
</script>
<style type="text/css"></style>
</head>
<body>
<button id="btn-1" name="1">1</button>
<button id="btn-2" name="2">2</button>
<button id="btn-3" name="3">3</button>
<div id="out"></div>
</body>
</html>
設置下路由:url(r'^ajax_deal/$','jobs.views.ajax_deal'),創建名為jobs的app
/opt/django/webproject/jobs
處理函數:
def ajax_deal(request):
return HttpResponse("hello")

5. django怎麼上傳文件到資料庫

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

6. 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;

}

}

7. Django 怎樣傳數據給HTML頁面的ajax

1. request.POST.get()
2. pos = request.POST.get("position") 這里取到的是str格式的
你直接pos + 10,str類型跟int類型相加肯定出錯撒
pos = int(pos) 處理一下
你描述的console一直報500錯誤,表示內部伺服器錯誤,下次看到就直接看伺服器端拋的什麼異常了,具體問題具體解決。

8. Django使用ajax遇到的關鍵問題有哪些

1、如果是post方法,不要忘記加上csrf_token,Djangodoc中關於ajax如何加入csrf_token;
2、注意url和302重定向的問題。
因為http在重定向後是不保留request里的postdata的。所以當發現自己postdata為空的時候,就可以用firebug之類的檢查下是不是產生了302重定向。
一般重定向的問題有url/和url之間的重定向。
有時遇到的問題比較少見,就是zh-cn的重定向。因為使用了多語言的設置,所以Django會幫忙把所有的url重定向到以zh-cn開頭的url。
當在form里使用{%url%}這個標識符的時候,模板系統會自動加上zh-cn,所以不會重定向。但是當在ajax裏手動填寫url的時候,如果忘記加上zh-cn就會產生一個重定向,丟失data。

9. Django 怎樣傳數據給HTML頁面的ajax

有三種方法:1,在模版中的html文件中嵌入含有這個函數的js文件或者直接加到html裡面.2,在js中通過ajax訪問打開一個鏈接,比如/admin/url?key=value,那麼在admin.py中的url方法中這樣keyvlaue=request.GET.get('key',None)來獲取這個value

10. python django通過ajax向後端傳json怎麼解析

你首先得確定你傳給後端的內容, 是什麼樣的, 不能直接就是json.loads
假設view對應方法源碼如下
def test(req):
print(req.POST) # 通過輸出看看前端傳過來的數據是什麼
return HttpResponse('test')

只有符合'{"aa":"xxx"...}'這樣的json格式才能夠被json.loads識別並反序列化, 如果傳回來的結果不是這樣的json格式, 那麼就要調整前端的ajax, 以便能夠構造出這樣的數據, 具體可以通過dataType: json或者通過字元串拼接的方法構造都可以, 詳情可以自行谷歌: ajax傳遞json數據

熱點內容
cmvc上傳文件 發布:2025-08-30 08:04:25 瀏覽:851
python中類的繼承 發布:2025-08-30 08:00:03 瀏覽:80
編譯系統是軟體嗎 發布:2025-08-30 07:58:37 瀏覽:212
編程es 發布:2025-08-30 07:57:43 瀏覽:368
ftp登陸windows 發布:2025-08-30 07:36:32 瀏覽:714
word腳本錯誤 發布:2025-08-30 07:34:11 瀏覽:371
php獲取協議 發布:2025-08-30 07:33:16 瀏覽:748
編譯時出現 發布:2025-08-30 07:23:58 瀏覽:32
汽車配置有哪些坑爹 發布:2025-08-30 07:23:57 瀏覽:417
伺服器的零件和電腦一樣嗎 發布:2025-08-30 07:23:23 瀏覽:37