实战Django之iframe介绍和交互

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之ajax文件上传的两种方式和ifname上传文件【交互篇六】点击跳转

目录

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

iframe简单介绍

iframe标签就是把一个url的页面嵌套到我们的HTML里面
基于iframe具备偷偷发请求的功能实现伪ajax

1.创建Django项目

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

实战Django之iframe介绍和交互_第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之iframe介绍和交互_第2张图片

实战Django之iframe介绍和交互_第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 = [
    #iframe
    re_path('iframe/', views.iframe),
]

6.定义url对应函数处理

路径:project_burgess/submit_views/views.py

def iframe(request):
    if request.method == "GET":
        return render(request, 'iframe.html')
    elif request.method == "POST":
        import time
        time.sleep(3)
        print(request.POST)
        ret = {'code': True , 'data': request.POST.get('username')}
        import json
        return HttpResponse(json.dumps(ret))

7.定义响应的html文件

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

路径:project_burgess/templates/iframe.html




    
    



    
    
    
    

    
    

8.启动Django

手动:python manage.py runserver 127.0.0.1:8000

pycharm:

实战Django之iframe介绍和交互_第4张图片

9.浏览器访问URL结果

get请求

实战Django之iframe介绍和交互_第5张图片输入先输输入url 然后点击按钮发送iframe

 

实战Django之iframe介绍和交互_第6张图片
先输入url然后点提交结果iframe刷新,但是input输入的url没有消失
通过上面实验得出结果:iframe悄悄的发出请求

10.通过form结合iframe伪造ajax

form+iframe伪造ajax原理:
    1.form的target该内部属性指定到iframe :相当于form进行submit交由iframe去提交数据
     2.后台如果有响应数据,那么会响应的数据返回给iframe,iframe进行应用到标签的text(内容)
     3.ifname接收到响应数据以后,会触发一个onload事件,
     4.事件函数内部我们可以进行获取iframe得到的响应数据进行应用




    
    


    
    

    
{% csrf_token %}

 

 

11.浏览器访问URL结果

 

get请求

实战Django之iframe介绍和交互_第7张图片

点击form提交

实战Django之iframe介绍和交互_第8张图片

实战Django之iframe介绍和交互_第9张图片
 

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之ajax文件上传的两种方式和ifname上传文件【交互篇六】点击跳转

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