实战Django之Ajax前后端交互

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之Ajax【交互篇五】点击跳转

目录

  • 1.创建Django项目
  • 2.创建app(并且app目录下创建一个urls.py文件)
  • 3.定义setting配置文件的静态目录路径和创建静态目录(我们需要js文件)
  • 4.定义请求的URL路由分发
  • 5.定义app下的URL路由
  • 6.定义url对应函数处理
  • 7.定义响应的html文件
  • 8.启动Django
  • 9.浏览器访问URL结果

1.创建Django项目

Django之创建项目【二】:https://blog.csdn.net/Burgess_zheng/article/details/86505526

实战Django之Ajax前后端交互_第1张图片

2.创建app(并且app目录下创建一个urls.py文件)

进入项目目录下
创建app命令:
    F:\Burgess\Python\pycharm实验脚本\test\project_burgess>python manage.py startapp submit_views

3.定义setting配置文件的静态目录路径和创建静态目录(我们需要js文件)

路径:project_burgess/project_burgess/setting

实战Django之Ajax前后端交互_第2张图片

实战Django之Ajax前后端交互_第3张图片

4.定义请求的URL路由分发

路径:project_burgess/project_burgess/urls.py

from django.contrib import admin
from django.urls import path,re_path #Django版本2.0以上
from project_burgess import views
from django.conf.urls import url  #Django2.0
from django.conf.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
   
    #提交各种数据数据类型测试
    re_path('submit/', include("submit_views.urls")),
    # url(r'^submit/', include("submit_views.urls")),

]

5.定义app下的URL路由

路径:project_burgess/submit_views/urls.py

__author__ = "Burgess Zheng"
#!/usr/bin/env python
#-*- coding:utf-8 -*-
from django.urls import path,re_path #Django版本2.0以上
from submit_views import views
from django.conf.urls import url  #Django2.0

app_name='namespace'
urlpatterns = [
    #ajax
    re_path('ajax/', views.ajax),
    # url(r'^ajax/', views.ajax),
]

6.定义url对应函数处理

路径:project_burgess/submit_views/views.py

def ajax(request):
    if request.method == "GET":
        return render(request, 'ajax.html')
    elif request.method == "POST":
        import json
        ret = {'status': True, 'error': None, 'data': None}
        try:  # 循环里面的内容
            h = request.POST.get('hostname')
            i = request.POST.get('ip')
            p = request.POST.get('port')
            b = request.POST.get('b_id')
            print('hostname:%s ip:%s port:%s b_id:%s'%(h,i,p,b))

            if h and len(h) > 5:  # 如果是真并且长度大于5 、if h :如果h(内容不是空)为真
                #models.Host.objects.create(hostname=h, ip=i, port=p, b_id=b)
                 print('存入数据库成功')
            else:
                ret['status'] = False
                ret['error'] = "太短了"
        except Exception as e:  # 抓住Exception 所有的异常
            ret['status'] = False
            ret['error'] = '请求错误'
        print(ret)
        return HttpResponse(json.dumps(ret))  # 把字典序列成字符串返回给模板的ajax


7.定义响应的html文件

涉及到csrf跳转:Django之CSRF XSS原理解析【交互篇四】 https://blog.csdn.net/Burgess_zheng/article/details/86548425

路径:project_burgess/templates/ajax.html




    
    Title


    
{% csrf_token %}

8.启动Django

手动:python manage.py runserver 127.0.0.1:8000

pycharm:

实战Django之Ajax前后端交互_第4张图片

9.浏览器访问URL结果

get请求

实战Django之Ajax前后端交互_第5张图片

点击第一个提交为form提交

查看后台

实战Django之Ajax前后端交互_第6张图片

 

get请求

实战Django之Ajax前后端交互_第7张图片

点击ajax提交

 

实战Django之Ajax前后端交互_第8张图片

查看后台

 

实战Django之Ajax前后端交互_第9张图片

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之Ajax【交互篇五】点击跳转​​​​​​​

你可能感兴趣的:(Django,Django之交互实战篇,Django实战篇【总】)