当前位置:首页 > Web开发 > 正文

file json 路由系统 反向解析

2024-03-31 Web开发

FBV与CBV

参考网址

request对象

参考网址

上传文件示例 def upload(request): """ 保存上传文件前,数据需要存放在某个位置。默认当上传文件小于2.5M时,django会将上传文件的全部内容读进内存。从内存读取一次,写磁盘一次。 但当上传文件很大时,django会把上传文件写到临时文件中,,然后存放到系统临时文件夹中。 :param request: :return: """ if request.method == "POST": # 从请求的FILES中获取上传文件的文件名,file为页面上type=files类型input的name属性值 filename = request.FILES["file"].name # 在项目目录下新建一个文件 with open(filename, "wb") as f: # 从上传的文件对象中一点一点读 for chunk in request.FILES["file"].chunks(): # 写入本地文件 f.write(chunk) return HttpResponse("上传OK") #上传文件示例代码

django输出json格式

view.py,视图 def json(request): from django.http import JsonResponse from json import dumps data = { '素还真' : "半神半圣亦半仙", '一叶书' : "笑尽英雄", '叶小钗' : "啊", } data_str = dumps(data,ensure_ascii=False,sort_keys=True, indent=4, separators=(',', ':')) return HttpResponse(data_str,content_type="application/json") # return HttpResponse(data_str,) # return JsonResponse(data) django 上传文件 def upload(request): if request.method == "POST": # 获取文件名称 filename =request.FILES['filename'].name print(filename) # 获取文件上传集合 print(request.FILES) # 取上传的单个文件进行写入操作 with open(filename, "wb") as f: # 以每个chunks为单元写入磁盘 for i in request.FILES['filename'].chunks(): f.write(i) # 返回响应值 return HttpResponse("上传OK") # return HttpResponse("ok") else: return render(request,'user/upload.html') 路由系统

正则表达式的模糊匹配

分组匹配 --> 相当于给视图函数传递位置参数

分组命名匹配 --> 相当于给视图函数传递关键字参数
(两个不要混合使用)

反向解析URL

本质上就是给url匹配模式起别名,然后用过别名拿到具体的URL路径

怎么起别名?
在url匹配模式中,定义name="别名"

如何使用?

在模板语言里面使用:
{% url "别名" %} --> 得到具体的URL路径

在视图中如何使用:
from django.urls import reverse

reverse("别名") --> 得到具体的URL路径

如何传参数?

模板语言中:
{% url "别名" 2018 "nb" %}

视图函数中
传位置参数:
reverse("别名", args=(2018, "nb"))

传关键字参数:
reverse("别名" kwargs={"year": 2018, "title": "nb"})

namespace
为了防止不同的app下面的url匹配模式有重复的别名

django FBV&&CBV upload-file json 路由系统 反向解析

标签:

原文地址:https://www.cnblogs.com/anyux/p/11922039.html

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/web/42748.html