Django表单提交,无需重新加载页面

Django表单提交,无需重新加载页面

Django是一个高水平的Python Web框架,鼓励快速开发和简洁、务实的设计。它由经验丰富的开发人员构建,解决了网络开发的许多麻烦,因此你可以专注于编写你的应用程序,而不需要重新发明车轮。它是免费和开源的。

在这篇文章中,我们将看到在django中使用Jquery和Ajax进行表单提交而不需要重新加载页面。

为了安装django,打开cmd或终端,写下以下命令

pip3 install django

然后创建新的项目

django-admin startproject newproj
cd newproj

然后创建新的应用程序

Windows

python manage.py startapp main

Ubuntu

python3 manage.py startapp main

在settings.py中添加你的应用程序名称

Django表单提交,无需重新加载页面

在应用程序中创建新的目录,并将其命名为templates,在该目录中创建另一个目录并将其命名为main(你的应用程序名称)。

运行这个命令来迁移

python manage.py migrate

Django表单提交,无需重新加载页面

在models.py中创建新模型

models.py

from django.db import models
  
# Create your models here.
class Todo(models.Model):
    task = models.CharField(max_length=200)
  
    def __str__(self):
        return f"{self.task}"
python manage.py makemigrations
python manage.py migrate

admin.py

from django.contrib import admin
from .models import *
# Register your models here.
  
admin.site.register(Todo)

在模板目录下创建新文件,并命名为form.html

<!DOCTYPE html>
<html>
<head>
    <title>Todo List</title>
</head>
<body>
    <form method="post" id="task-form">
        {% csrf_token %}
        <input type="text" placeholder="Enter Task" name="task" id="task" required>
        <button type="submit">Save</button>
    </form>
  
    <script src="https://code.jquery.com/jquery-3.5.1.js" 
          integrity="sha256-QWo7LDvxbWT2tbbQ97B53yJnYU3WhH/C8ycbRAkjPDc=" 
            crossorigin="anonymous"></script>
  
    <script type="text/javascript">
    (document).on('submit','#task-form',function(e){
        e.preventDefault();
        .ajax({
            type:'POST',
            url:'{% url "home" %}',
            data:
            {
                task:("#task").val(),
                csrfmiddlewaretoken:('input[name=csrfmiddlewaretoken]').val()
            },
            success:function(){
                  alert('Saved');
                    }
            })
        });
    </script>
  
</body>
</html>

在views.py中创建新的视图来处理get和post请求。

from django.shortcuts import render
from .models import Todo
# Create your views here.
def home(request):
    if request.method == 'POST':
        task=request.POST.get('task')
        print(task)
        new = Todo(task=task)
        new.save()
    return render(request,"main/form.html")

在你的应用程序中创建新文件,并将其命名为urls.py

from django.urls import path
from .views import *
  
urlpatterns = [
    path('',home,name="home"),
]

在项目尿液中添加main.urls

myproj/urls.py

from django.contrib import admin
from django.urls import path,include
  
urlpatterns = [
    path('admin/', admin.site.urls),
    path('',include("main.urls"))
]

要运行应用程序写入命令

python manage.py runserver

输出

Django表单提交,无需重新加载页面

管理界面

Django表单提交,无需重新加载页面

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程