一、Get请求 如果你要做一个App项目,比如iOS或安卓项目,这时App和后端的项目是分离的。 此时要发网络请求,可以采用Get方式,也可以采用Post方式。 这里先介绍Get方式。...新建client_get.py,模拟客户端的GET请求 client_get.py中的完整代码为 import urllib.request url = 'http://127.0.0.1:8000/...text = resp.text print(text) 服务器端FirstWebDemo中,只需要修改view.py中的代码: from django.shortcuts import render...return JsonResponse(data) #通过django内置的Json格式,返回给客户端数据 在CMD窗口运行client_post.py后,得到403错误,表示服务器拒绝或禁止访问...1.1" 403 2868 将服务器端settings.py中的 'django.middleware.csrf.CsrfViewMiddleware', 注释起来 ?
在 Django 中,上传文件不同于普通服务器的上传方法,在普通服务器中只需要使用一个 Controller 来控制文件的上传即可完成,但是在 Django 中,则需要额外使用数据库资源来存储文件。...安装完成之后我们需要在 Django 的 settings.py 中更改一些设置: # settings.py # 在末尾添加 MEDIA_ROOT = os.path.join(BASE_DIR,...,而是 Django 将会自动将文件上传到你设置的位置,并且把上传之后的图片 path 存入数据库,这样你只需要访问数据库中的 path 即可访问到图片。...image_upload 方法,而 ImageTool 中 get_new_random_file_name 方法是为了获取一个新的 uuid 随机新名字,这样做的原因是因为图片可能有重名的状况,虽然如果遇到这样的事情...Django 会自动为我们处理,但是为了保持名字的可管理性和统一性,自己写一个重命名的方法会更好。
1、问题背景当我们使用 Django 进行 Web 开发时,经常需要在 Web 页面上显示数据库中的数据。例如,我们可能需要在一个页面上显示所有用户的信息,或者在一个页面上显示所有文章的标题和作者。...那么,如何使用 Django 来显示表中的数据呢?2、解决方案为了使用 Django 显示表中的数据,我们需要完成以下几个步骤:在 models.py 文件中定义数据模型。...数据模型是 Django 用于表示数据库中数据的类。...例如,如果我们想显示所有用户的信息,那么我们可以在 models.py 文件中定义如下数据模型:from django.db import modelsclass User(models.Model):...例如,如果我们想在一个页面上显示所有用户的信息,那么我们可以在 views.py 文件中定义如下视图函数:from django.shortcuts import renderdef users(request
HEAD 类似于GET请求,只不过返回的响应中没有具体内容,只返回响应头。 POST 向指定资源提交数据进行处理请求,数据被包含在请求体中。 PUT 从客户端向服务器发送的数据取代指定文档中的内容。...DELETE 请求服务器删除指定的页面。 CONNECT 预留的管道连接代理服务器。 OPTIONS 允许客户端查看服务器性能。 TRACE 用于显示服务器收到的请求。...Django中的请求 path_info: URL字符串,即当前请求的路径 method: 字符串,表示http的请求方法 GET: QueryDict查询字典的对象,包含get请求方式的所有资源 POST...403 HttpResponseServerError 服务器错误 500 GET与Post 无论是Get还是Post,都统一用视图函数接受请求,通过判断request.method区分具体的请求动作.... if request.method == "GET": 处理GET请求内容 elif request.method == "POST": 处理POST请求内容 GET处理 GET请求动作
因此,有必要说明一下,为什么要禁止除GET和POST之外的HTTP方法。 换句话说,对于这些HTTP不安全方法,到底有多不安全呢?...的 readonly参数默认是true,即不允许DELETE和PUT操作,所以通过PUT或DELETE方法访问,就会报403错误。...因此,当PUT上传jsp和jspx文件时,Tomcat用JspServlet来处理请求,而JspServlet中没有PUT上传的逻辑,所以会403报错。...: 1、除GET、POST之外的其它HTTP方法,其刚性应用场景较少,且禁止它们的方法简单,即实施成本低; 2、一旦让低权限用户可以访问这些方法,他们就能够以此向服务器实施有效攻击,即威胁影响大。...写到这里,也许大家都明白了,为什么要禁止除GET和POST外的HTTP方法,一是因为GET、POST已能满足功能需求,二是因为不禁止的话威胁影响大。
Django框架的介绍 起源&现状 2005年发布,采用Python语言编写的开源web框架 早期的时候Django主做新闻和内容管理的 一个重量级的 Python Web框架,Django...404 HttpResponseForbidden 请求被禁止 403 HttpResponseServerError 服务器错误 500 Django处理GET和POST请求 无论是...GET 还是 POST,统一都由视图函数接收请求,通过判断 request.method 区分具体的请求动作 样例: if request.method == 'GET': 处理GET请求时的业务逻辑...elif request.method == 'POST': 处理POST请求的业务逻辑 else: 其他请求业务逻辑 GET处理 GET 请求动作,一般用于向服务器获取数据 能够产生...GET 请求的场景: 浏览器地址栏中输入 URL, 回车后 <a href="地址?
接着在虚拟环境中安装本文用到的包: pip install django pip install djangorestframework pip install pygments # 代码高亮 创建项目...在tutorial/settings.py中的INSTALLED_APPS添加snippets和rest_framework: INSTALLED_APPS = [ ......2个数据模型的实例,所以这里只显示第2条数据。...和手动定义的字段一模一样。...,该操作是幂等的 401 Unauthorized - *:表示用户没有权限(令牌、用户名、密码错误) 403 Forbidden - *:表示用户得到授权(与401错误相对),但是访问是被禁止的 最后
基于django的个人博客网站建立(五) 前言 之前鸽了两天,今天继续再写点 主要内容 今天加了个展示照片的功能,就叫他生活记录吧 先建表 class Record(models.Model):...处理的视图函数为: @auth def publish_record(request): if request.method == 'GET': return render(request...,之后在页面显示时路径的前缀是固定的 在前端显示为 ?...接下来设置默认的访问错误页面: 在url.py中添加 handler403 = views.permission_denied handler404 = views.page_not_found handler500...在后台通过.md文件的方式存储内容 def about_edit(request): if request.method == 'GET': dir = os.path.join
Django视图是用来处理请求和响应的,Django默认是按Form和Template来设计的,如果要处理以JSON格式为主的RESTful API,那么就需要对Django请求和响应的处理代码进行优化改造...Request DRF把Django的HttpRequest扩展成了Request: ?...,支持POST、PUT、PATCH方法 Response DRF的Response继承自Django的django.template.response.SimpleTemplateResponse: ?...= 400 HTTP_401_UNAUTHORIZED = 401 HTTP_403_FORBIDDEN = 403 HTTP_404_NOT_FOUND = 404 HTTP_405_METHOD_NOT_ALLOWED...HTML文档,把API URL在浏览器中打开即可看到: ?
静态文件:写好的文件不会动态改变的文件资源,比如CSS文件,Js文件,图片文件,第三方框架等····· 墨守成规的将这些文件放在自创static文件夹中,在静态文件夹中创建CSS、JS、img、others...,eg:127.0.0.1:8000/static/a.txt ps:如果Django主页面不能访问了,在urls.py文件中写一个默认的对应关系补充 静态文件配置及访问顺序 静态文件 STATIC_URL...return render(request,'login.html') # GET请求返回页面 注意:request.POST返回的字典用get方法获取列表形式的value,返回的是字符串,get方法只会取列表的最后一个元素...使用request.POST.getlist方法,返回一个列表,就不再使用get方法了 def login(request): print(request.method, type(request.method...request.GET方法:和request.POST方法是一样的,返回字典 request.GET.get(k):获取字典的value,返回字符串 request.GET.getlist(k):获取用户数据
https://api.example.com/v1/ 另一种做法是,将版本号放在HTTP头信息中,但不如放入URL方便和直观。Github采用这种做法。...一般来说,数据库中的表都是同种记录的"集合"(collection),所以API中的名词也应该使用复数。...animal_type_id=1:指定筛选条件 参数的设计允许存在冗余,即允许API路径和URL参数偶尔有重复。比如,GET /zoo/ID/animals 与 GET /animals?...zoo_id=ID 的含义是相同的。 7、状态码(status codes) 服务器向用户返回的状态码和提示信息,常见的有以下一些(方括号中是该状态码对应的HTTP动词)。...403 Forbidden - [*] 表示用户得到授权(与401错误相对),但是访问是被禁止的。
在http协议中,实际上有八个http方法。但在实际开发中,绝大多数情况我们只会用到两个方法,就是get和post。所以我们来稍微谈谈两种方法的区别,以及何时应该选取何种方法。...get和post的区别 post有一个体! 这个是关键。 ? Paste_Image.png ?...Paste_Image.png get和post都能发送参数,但是利用get的话,对参数数据量有限制,因为参数只能是放在请求行的内容中。而post由于在体中,则没有数据量的限制。...---- ** 所以总结一下,第一方面的区别数据量的大小限制 ** ---- 但不仅仅是数据的大小。 使用get时,参数数据会显示在浏览器的输出栏,这就引发了安全问题。...** get是幂等的,而post不是幂等的**
就是这样:[i63zfl3163.png] 前面说过Django的web开发是采用MTV模式的,现在如果我们想在浏览器中显示前端页面,我们只需要配置一下url就可以了。...尽管前面我们已经把网站首页和登录页面在浏览器中显示了,但是那些信息都是固定的,也就是说当初前端人员在设计网页的时候就确定了,我们现在所要做的就是更改它们的信息,使满足自己的信息得到显示。...(request): # 前端向后端发送的请求方式有两种: get和post # 登录提交表单时为post if request.method == "POST":...,点击提交,出现了403禁止访问错误:[26wng9ft2p.png] 这其实是Django自带的防止csrf攻击的一个安全机制,目前你不用管这个机制的作用原理是什么(后面会讲到),只需要记住所有html...request对象. def login(request): # 前端向后端发送的请求方式有两种: get和post # 登录提交表单时为post if request.method
HTML5学堂:在JavaScript当中,存在“get和post方法的区别”这一辨析知识。其实get和post是向服务器端请求/提交数据的两种方式。...$_POST和$_GET有何作用 PHP中有$_POST和$_GET两个超级全局变量,两个都可以用作向服务器发送请求,但是这两者有一些区别。...来整体总结一下: POST:用于向服务器发送数据,从而以某种方式导致服务器上状态的改变,如在数据库中插入数据。数据还可以在响应中返回。...不同于GET,POST请求只能通过WEB表单的动作完成,另外,POST当中发送的数据是隐藏不可见的。 GET:一般用于数据的获取,而不会使服务器有任何改变。...对于少量的数据,GET非常有用,可以直接在URL中向服务器发送数据。与POST的另一个不同之处在于GET适用于发送少量的数据。
1 Get请求数据 项目地址:https://github.com/Snowstorm0/learn-get-post 1.1 Controller 文件名MyController,内容为: @RestController...timeString; } } 1.3 Application 在application.properties配置: # 设置端口号 server.port=8888 1.4 Postman 配置Get...public Map postReceiveByMap(Map map){ int number = map.get...0 : Integer.parseInt((String) map.get("number")); String name = map.get("name") == null ?..."" : (String)map.get("name"); Map res = new HashMap(); res.put("number
在 django 的 models.py 中,我们定义了一些 choices 的元组,类似一些字典值,比如一个订单状可能有多种状态,这时订单状态这个字段就可以用 choice ,在数据库中 status...保存的是数字整型。...,在 django 框架中可以用 get_FOO_display() 获取数字对应的订单状态。...本例可以用 order_status = main_order.get_status_display() 获取该订单的状态。FOO 是对应模型中的字段。...在代码中尽量不要出现固定的硬编码,比如某个判断条件,判断订单的状态为待订单审核,你可能会这么写: if status == 1: pass 比较灵活的写法应该是这样的: if status =
在 Django 中,主要有两种类型的视图: FBV:基于函数的视图 CBV:基于类的视图 FBV(Function-Based Views)和CBV(Class-Based Views)是两种处理视图的方式...它使用 Python 类来组织和管理视图逻辑。在CBV中,每个视图通常是一个类方法,用于处理不同类型的 HTTP 请求。CBV提供了更多的灵活性和可扩展性,允许你在不同的方法中组织视图逻辑。...django.views.View 类提供了一些基本的 HTTP 请求方法(如 GET、POST 等),你可以在子类中覆盖这些方法来处理不同类型的请求。...默认情况下,使用 POST 、PUT 、PATCH 、DELETE 都是会报 403 这个错误的,这是因为 Django 默认开启防止csrf(跨站点请求伪造)攻击,此时有几种方法可以应对。...(request): if request.method == 'GET': return HttpResponse('使用了GET请求') if request.method == '
在django的开发中,很多时候我们希望app在admin中显示成我们想要的中文名,而不是显示默认的app_label名称。...在导入app时,django会检查每个在INSTALLED_APPS中的app的default_app_config变量,如果没有设置,django会使用基类AppConfig,因此我们只需要在init.py...所在的路径填写 通过以上两步,即可实现自定义app在admin中的显示名称。...经过以上步骤的操作,在自带的admin 和 xadmin 中都能显示出来 ? 自带的admin中的显示效果 ?...xadmin中的显示效果 内容方法来源:https://www.jianshu.com/p/69e6f9c97b48
做系统的时候,前后端需要交互,传递数据。以及控制逻辑等。这里做了个总结。 我们做系统,光有后台不行,还得有好看和便利的前台来操作和展示信息。前端一般是用html5和JS来控制。...后台控制数据和逻辑,前台控制交互和展示。所以前后台得通信,交换信息。这里就是讲他们如何传递数据的。 市面上的系统一般的架构都是MVC的,M指的是model,数据库这层。...,需要使用 JSON.parse(data) Django 代码: def scene_update_view(request): if request.method == "POST":... {% endif %} 上面代码是从views.py里分离出来的用来显示最近问题列表的功能,这里分条显示。...): pass 这样也可解决403错误问题 如使用表单提交可以在提交的表单中加入{% csrf_token %} 这样即可避免csrf权限问题