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

目录


1.创建Django项目

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

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各种数据提交(单选框,多选框,单选下拉框,多选下拉框,文件)

路径:project_burgess/templates/submit_handle.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
    <form method="POST" action="/submit/" enctype="multipart/form-data">
        {% csrf_token %}
        {#单选框#}
        <div>
            男:<input type="radio" name="gender" value="1">
            女:<input type="radio" name="gender" value="2">
            同:<input type="radio" name="gender" value="3">
        </div>

        {#多选框#}
        <div>
            男:<input type="checkbox" name="favor" value="11">
            女:<input type="checkbox" name="favor" value="12">
            同:<input type="checkbox" name="favor" value="13">
        </div>

        {#select下拉框#}
        <div>
            <select name="city">
                <option value="sz">深圳</option>
                <option value="gz">广州</option>
                <option value="cs">潮汕</option>
            </select>
        </div>

        {# select序多选下拉框#}
        <div>
            <select name="city_mul" multiple>
                <option value="sz">深圳</option>
                <option value="gz">广州</option>
                <option value="cs">潮汕</option>
            </select>
        </div>

        {# 文件接收 #}
        <div>
            <input type="file" name="file_name"/>
        </div>
        <input type="submit" name="提交">

    </form>
</body>
</html>

7.启动Django

手动:python manage.py runserver 127.0.0.1:8000

pycharm:

8.浏览器访问URL结果

get请求

点击提交

查看后台

查看图片目录

下一篇:Django之view视图处理(FBV,CBV,装饰器,前后端交互各种数据类型和响应,请求头相关信息)【四】https://blog.csdn.net/Burgess_zheng/article/details/86539387

猜你喜欢

转载自blog.csdn.net/Burgess_zheng/article/details/86539836
今日推荐