实战Django前后端的交互各种数据类型

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之view视图处理【交互篇二】点击跳转

目录

  • 1.创建Django项目
  • 2.创建app(并且app目录下创建一个urls.py文件)
  • 3.定义请求的URL路由分发
  • 4.定义app下的URL路由
  • 5.url对应函数进行接收数据和响应数据
  • 6.前端HTML各种数据提交(单选框,多选框,单选下拉框,多选下拉框,文件)
  • 7.启动Django
  • 8.浏览器访问URL结果

1.创建Django项目

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

实战Django前后端的交互各种数据类型_第1张图片

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

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

3.定义请求的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")),

]

4.定义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 = [
    re_path('',views.submit_handle),
   #url(r'^', views.submit_handle),
]

5.url对应函数进行接收数据和响应数据

路径:project_burgess/submit_views/views.py

from django.shortcuts import render,redirect,HttpResponse
# Create your views here.

def submit_handle(request):
    if request.method == "GET":
        return render(request, 'submit_handle.html')
    elif request.method == "POST":
        # radio(单选框)接收数据格式如下:
        gender = request.POST.get('gender')
        print('gender: ',gender)

        # checkbox(多选框)接收数据如下:
        favor = request.POST.getlist('favor')
        print('favor: ',favor)

        # select(单选下拉框)接收数据如下:
        city = request.POST.get('city')
        print('city: ',city)

        # select(多选下拉框)接收数据如下:
        city_mul = request.POST.getlist('city_mul')
        print('city_mul:',city_mul)

        # files(上传文件)接收数据如下:
        obj = request.FILES.get('file_name')  # 获取用户上传过来整个文件
        import os
        file_path = os.path.join('%s\\upload'%os.path.dirname(os.path.abspath(__file__)), obj.name)  # 在上传的文件名加上一个upload路径
        f = open(file_path, mode="wb")  # 二进制写入方式在upload目录创建一个的文件,文件名为调取客户上传的文件名
        for i in obj.chunks():  # 文件都是块组成的,obj.chunks 获取该文件的所有块导入i
            f.write(i)  # 循环把块写入f文件
        f.close  # 写完关闭掉文件
        print('file:',obj)     #打印显示该对象(FILES获取是整个文件 不是文件名,显示和文件名一样)
        # print(type(obj))     #打印该对象的类型(结果类型是一个类的对象,证明是文件)
        # print(obj.name)      #打印显示该对象的名字(这就是文件名了)
        # print(type(obj.name)) #打印显示该对象的名字的类型(结果类型是字符串
        # print(obj,type(obj),obj.name,type(obj.name))  #以上是分开打,其实逗号隔开打都可以
        return HttpResponse('OK')

    else:
        # PUT,DELETE,HEAD,OPTION....(目前用不到)
        return HttpResponse('False')



6.前端HTML各种数据提交(单选框,多选框,单选下拉框,多选下拉框,文件)

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

路径:project_burgess/templates/submit_handle.html




    
    Title


    
{% csrf_token %} {#单选框#}
男: 女: 同:
{#多选框#}
男: 女: 同:
{#select下拉框#}
{# select序多选下拉框#}
{# 文件接收 #}

7.启动Django

手动:python manage.py runserver 127.0.0.1:8000

pycharm:

实战Django前后端的交互各种数据类型_第2张图片

8.浏览器访问URL结果

get请求

实战Django前后端的交互各种数据类型_第3张图片

点击提交

实战Django前后端的交互各种数据类型_第4张图片

查看后台

实战Django前后端的交互各种数据类型_第5张图片

查看图片目录

实战Django前后端的交互各种数据类型_第6张图片

目录篇:Django之前后端交互篇目录 点击跳转
主篇:Django之view视图处理【交互篇二】点击跳转​​​​​​​

 

 

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