Django Js 提交并保存

javascript是单线程,不像一般程序语言按顺序执行,当你打算在一段js代码里完成提交表单之后并关闭窗口,其实是行不通的。
        可以使用这个方法代替,当提交完表单之后跳转到新的窗口在实行关闭。跳转页面的代码如下

<html>
<body></body>
<script >
    window.onload=function(){

window.open("","_self").close();

}
</script>
</html>
Django中实现Ajax上传PDF文件,并将其保存到服务器,可以按照以下步骤操作: 1. **安装依赖**: 首先,你需要安装`django-file-forms`库,它支持处理文件上传。你可以通过命令行安装: ``` pip install django-file-forms ``` 2. **模型定义**: 在Django的models.py文件中,创建一个文件字段来存储PDF文档: ```python from django.db import models class Document(models.Model): file = models.FileField(upload_to='pdfs/') ``` `upload_to`参数用于指定文件上传后的路径。 3. **视图函数**: 创建一个视图函数,接收POST请求,处理文件上传: ```python from django.shortcuts import render, redirect from .forms import DocumentForm def upload_pdf(request): if request.method == 'POST': form = DocumentForm(request.POST, request.FILES) if form.is_valid(): form.save() return redirect('success_url') # 跳转到成功页面 else: form = DocumentForm() return render(request, 'upload_form.html', {'form': form}) ``` 使用`DocumentForm`来处理表单数据,该表单需要从`forms.py`导入。 4. **HTML模板**: 在`templates`目录下创建一个`upload_form.html`文件,包含一个HTML表单来让用户选择文件上传: ```html <html> {% load crispy_forms_tags %} ... <form method="post" enctype="multipart/form-data"> {% csrf_token %} {{ form|crispy }} <button type="submit">Upload</button> </form> </html> ``` 使用`crispy_forms`库来美化表单。 5. **AJAX提交**: 在前端使用JavaScript (如jQuery) 或 Axios 等库,实现文件选择并异步发送至服务器。示例用jQuery: ```javascript $('#upload-btn').on('click', function() { var formData = new FormData($('form')[0]); $.ajax({ url: '{% url 'upload_pdf' %}', type: 'POST', data: formData, cache: false, contentType: false, processData: false, success: function(data) { // 成功后跳转或显示提示信息 console.log("File uploaded successfully"); }, error: function(err) { console.error("Error uploading file:", err); } }); }); ``` 6. **URL配置**: 在`urls.py`中配置视图对应的URL路由。 记得替换上述代码中的`success_url`为你实际应用中的成功页面URL。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值