当前位置:首页 » 文件管理 » 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数据

热点内容
创意公益广告脚本 发布:2025-08-30 06:04:41 浏览:223
购买云服务器后 发布:2025-08-30 06:04:38 浏览:247
阿里云购买服务器流程 发布:2025-08-30 06:00:00 浏览:414
端游有哪些脚本 发布:2025-08-30 05:46:34 浏览:737
ftp连接哪里 发布:2025-08-30 05:46:01 浏览:495
次数据库文件 发布:2025-08-30 05:42:04 浏览:614
块存储产品 发布:2025-08-30 05:37:00 浏览:522
安卓手机如何去除小贴纸还原照片 发布:2025-08-30 05:36:08 浏览:244
安卓如何听m4a 发布:2025-08-30 05:07:09 浏览:966
存储服务器到电脑怎么布线 发布:2025-08-30 05:05:42 浏览:934