时,浏览器会生成http请求,经互联网发送到对应的web服务器,Web服务器端接收请求,通过WSGI将HTTP格式数据转换成能用的数据,并生成响应又依次返回给客户端 2.2 HTTP请求 2.2.1 报文...常见HTTP方法:GET,POST,PUT,DELETE,HEAD,OPTIONS 2.2.2 Request对象 当Flask接收到请求后,请求对象会提供多个属性来获取URL的各个部分,除了URL,...路由匹配 程序实例中存储了一个路由表(app.url_map),当请求发来后,Flask会根据请求报文中的URL来尝试与该表中所有的URL规则匹配,调用匹配成功的视图函数。..." 当请求的方法不符合要求时,请求将无法被正常处理(出现405错误响应),因此我们可以为同一个URL根据请求方式定义多个视图函数 3....403 Forbidden 请求的资源被服务器拒绝访问 404 Not Found 服务器上无法找到请求的资源或者URL无效 服务器端错误 500 Internet Server Error 服务器内部发送错误
无国籍 客户端-服务器交互本质上应该是无状态的。服务器不应存储状态数据,响应应完全取决于客户端请求中存在的信息。然而,客户端可以存储保持会话状态数据。这增强了交互的可扩展性和可靠性。...3.缓存 缓存的出现是为了解决 REST 的无状态性问题。这个缓存是在客户端实现的,并且缓存了可缓存的响应。...请求头 发送到服务器的额外请求以指定响应类型、编码、内容类型和自定义参数。等等。 4. 请求体 尝试创建资源时,资源数据在放置请求的正文中发送。 5. 响应体 Web 服务器在响应正文中返回数据。...假设客户端发送 GET 来查询 python 类别的数据,Web 服务器将在响应正文中返回数据。 6 响应代码 这些编码与响应一起返回,并表示发送到服务器的请求的状态。这些类似于 HTTP 响应代码。...例如,200 OK 表示请求成功,404 NOT FOUND 表示在服务器上找不到资源。
安装Flask 依赖 当安装 Flask 时,以下配套软件会被自动安装: > – Werkzeug 用于实现 WSGI 是一个 WSGI(在 Web 应用和多种服务器之间的标准 Python 接口) 工具集...而”request.args.get()”方法则可以获取Get请求URL中的参数,该函数的第二个参数是默认值,当URL参数不存在时,则返回默认值。在后文的请求对象会讲到。...访问请求数据 对于 Web 应用,与客户端发送给服务器的数据交互至关重要。在 Flask 中由全局的 request 对象来提供这些信息。...当 Flask 开始它内部的请求处理时,它认定当前线程是活动的环境,并绑定当前的应用和 WSGI 环境到那个环境上(线程)。它的实现很巧妙,能保证一个应用调用另一个应用时不会出现问题。...例如因为用户篡改了数据或客户端代码出错 而导致一个客户端代码向服务器发送了明显错误的 HTTP 请求。
,这意味着响应体内容将逐步发送给客户端。...此外,Flask支持通过扩展实现的服务端会话,提供更高安全性,即使客户端禁用cookie也能维持会话状态。...('这是一个错误日志')4、错误处理器Flask通过HTTP状态码区分错误类型:400-499表示客户端错误,500-599表示服务器错误。...对于非标准HTTP代码,Werkzeug无法直接识别,因此不应直接注册这些异常。正确的做法是定义一个带有合适HTTP代码的HTTPException子类,然后在应用中注册并使用这个自定义异常类。...如果用户提供了用户名,但服务器上找不到对应的用户信息,我们则可以使用abort(404)来明确告知用户请求的资源不存在。
,规定服务器可以提供基于服务器的代码以响应客户端,这样一来,就可以从服务器上获取客户端的新功能。...例如,如果客户端是iOS或Android设备,执行JavaScript可能会带来一些复杂情况 无状态 它指出,REST API可以保存客户端发送请求时的任何状态。...这意味着,在Web开发中常见的在无状态API中,每个请求都需要包含服务器需要识别和验证客户端并执行请求的信息。这也意味着服务器无法在数据库或其他存储形式中存储与客户端连接有关的任何数据。...对象查询的get_or_404()方法的英文以前见过的get()方法的一个非常有用的变行业释义体育,如果用户存在,报道查看它定给id的对象,当ID不存在时,它会中止请求并向客户端返回一个404错误,而不是返回...HTTP客户端知道当它们收到此错误时,需要重新发送有效的凭证。
当访问http://127.0.0.1:5000/post/3时,页面显示为帖子3.用户在浏览器地址栏上输入的都是字符串,但是在传递给show_post函数处理时已经被转换为了整型。...下表总结了不同的http方法: 序号 方法与描述 1 GET 浏览器通知服务器只获取页面上的信息并且发送回来 2 HEAD 浏览器告诉服务器获取信息,但是只对头信息感兴趣,不需要整个页面的内容。...在以下Flask应用程序中,当您访问’/’ URL时,会打开一个简单的表单。...需要在该会话中保存的数据会存储在服务器上的临时目录中。会为每个客户端的会话分配会话ID。 会话(session)是在cookies的基础上实现的,并且在cookies中使用加密的签名。...在以下示例中,redirect()函数用于在登录尝试失败时再次显示登录页面。
添加 404 页面 因为我们定义了一个将所有请求跳转到 index.html 的路由,因此 Flask 将无法捕获到 404 错误(以及不存在的页面),将一些找不到页面的请求也跳转到 index.html...- Not Found 现在通过运行 npm run dev 来重新运行前端服务器,并尝试一些不存在的 URL 链接。...Vue.js/Flask' 教程将在服务器端创建 API 并在客户端发送。 我将创建一个简单的端点,它将返回一个从 1 到 100 的随机数。...您可以阅读插件的文档,文档中更好地说明了在服务器上启用 CORS 的方法。...否则只需使用代理前端开发服务器的技巧。 另一项改进是避免在前端硬编码 API 路由。也许您需要创建一个包含 API 路由名称的词汇集。 因此,当您更改 API 路由时,您只需刷新这个词汇集即可。
在浏览器地址栏中输入http://127.0.0.1:5000/user/imagineXie进行测试。 1.2程序与请求上下文 请求对象封装了客户端发送的HTTP请求。...在多线程服务器中,多个线程同时处理不同客户端发送的不同请求时,每个线程看到的request对象必然不同。Falsk使用上下文让特定的变量在一个线程中全局可访问,与此同时却不会干扰其他线程。...每次请求都会重设这个变量 (2)请求上下文 request:请求对象,封装了客户端发出的HTTP请求中得内容 session:用户会话,用于存储请求之间需要“记住”的值的词典 在使用这些变量时,我们需要先激活...Falsk为每个路由都指定了请求方法,这样不同的请求方法发送到相同的URL上时,会使用不同的视图函数进行处理。 1.4请求钩子 请求钩子使用修饰器实现。Falsk支持4种钩子。...以上例子中,如果URL中动态参数id对应的用户不存在,就返回状态码404。
在Web开发中,我们经常会遇到404 Not Found错误。这个错误提示告诉我们所请求的URL在服务器上不存在。如果你正在遇到这个问题,本文将为你提供一些解决方案。1....当无法找到所请求的URL时,默认情况下服务器会返回一个简单的404错误页面。为了提升用户体验,可以设置一个自定义的404页面,向用户展示更友好的错误信息,并提供相关的导航或搜索功能。...下面是一些常见的错误码及其解释:400 Bad Request:客户端发送的请求有语法错误,服务器无法理解。401 Unauthorized:请求需要身份验证,但客户端未提供有效的凭据。...403 Forbidden:服务器拒绝请求,因为客户端没有访问权限。404 Not Found:所请求的URL不存在于服务器上。...例如,当客户端收到404 Not Found错误码时,可以显示一个错误页面或者尝试使用其他URL进行请求。 对于开发者来说,了解这些错误码的含义对于排查和修复问题非常有帮助。
客户端(Web 游览器)发送网络请求到 Web 服务器,Web 服务器再把请求转发给 Flask 程序实例。...我们使用 hello() 函数注册为根地址的处理程序,当服务器接收到来自 http://localhost:5000 的网络请求,flask 示例就会查找根目录下的 视图函数 (hello 函数),找到后把返回值给客户端...响应的内容包含简单的字符串,json 数据,xml 数据,html 页面给客户端 参数二:http 状态码 但是 http 协议中一个重要的部分就是 响应状态码。...('500.html'),500 当我们访问一个不存在的页面时,就会提示我们页面不存在了 1.6 路由请求方法监听(补充更新) 路由默认只监听 GET 方法,如果需要监听其他的请求方法,我们需要在 属性...当我们使用 Flask 访问了一个不存在的页面时,Flask 就给我们返回一个 404 的页面,然后我们进入这个页面后,单击返回,就可以返回到主页,这里要怎么做呢?
HTTP状态码大全 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。...下面是常见的HTTP状态码: 200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误...4** 客户端错误,请求包含语法错误或无法完成请求 5** 服务器错误,服务器在处理请求的过程中发生了错误 HTTP状态码列表: HTTP状态码列表 状态码 状态码英文名称 中文描述 100 Continue...,超时 409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时 发生了冲突 410 Gone 客户端请求的资源已经不存在。...Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
在Flask中,使用蓝图可以帮助我们实现模块化应用的功能。 蓝图的运行机制: 蓝图是保存了一组将来可以在应用对象上执行的操作。...在生产环境中,flask自带的服务器,无法满足性能要求,我们这里采用Gunicorn做wsgi容器,来部署flask程序。Gunicorn(绿色独角兽)是一个Python WSGI的HTTP服务器。...RESTful架构: 每个URL代表一种资源; 客户端和服务器之间,传递这种资源的某种表现层; 客户端通过四个http动词,对服务器资源进行操作,实现表现层状态转换。...404 NOT FOUND :请求针对的是不存在的记录。 406 Not Acceptable :用户请求的的格式不正确。 500 INTERNAL SERVER ERROR :服务器发生错误。...API的方法,使客户端很方便的获取相关联的信息。
web服务的本质 我们的浏览器端(B/S架构)本质上也是一个客户端,通过socket与服务端通信,发送请求,获得返回数据,再有浏览器将服务器返回的数据渲染成页面上看到的一个一个标签元素样式。...浏览器输入网址回车发生了几件事 ***** 浏览器(客户端)朝服务端发送请求 服务端接收请求 服务端返回相应的响应 浏览器接收响应,根据特定的规则渲染页面展示给用户看 HTTP协议(超文本传输协议) 参考博客...客户端(通常是浏览器)发送请求,服务端接收到做处理并返回响应 基于TCP/IP之上的,作用于应用层的协议 基于socket通信 无状态(服务端无法保存用户的状态,一个人来一千次都记不住,都当做第一次...(例如当你在访问一个需要登录之后才能访问的页面,你会发现窗口会自动跳到登录页面 301、302) 4XX:请求错误(请求资源不存在 404, 请求不符合内部规定(可能数据少了)或权限不够 403) 5XX... src
HTTP 状态码 当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。...下面是常见的 HTTP 状态码: 200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误 HTTP 状态码分类 HTTP...所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源 305 Use Proxy 使用代理。...,超时 409 Conflict 服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突 410 Gone 客户端请求的资源已经不存在。...Gateway 作为网关或者代理工作的服务器尝试执行请求时,从远程服务器接收到了一个无效的响应 503 Service Unavailable 由于超载或系统维护,服务器暂时的无法处理客户端的请求。
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含HTTP状态码的信息头(server header)用以响应浏览器的请求。...下面是常见的HTTP状态码: 200 - 请求成功 301 - 资源(网页等)被永久转移到其它URL 404 - 请求的资源(网页等)不存在 500 - 内部服务器错误 HTTP状态码分类 HTTP状态码由三个十进制数字组成...请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误 HTTP状态码列表: HTTP状态码列表状态码状态码英文名称中文描述100Continue继续。...所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源305Use Proxy使用代理。...,超时409Conflict服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突410Gone客户端请求的资源已经不存在。
下面是常见的HTTP状态码: 200 – 请求成功 301 – 资源(网页等)被永久转移到其它URL 404 – 请求的资源(网页等)不存在 500 – 内部服务器错误 HTTP状态码分类 HTTP状态码由三个十进制数字组成...请求包含语法错误或无法完成请求5**服务器错误,服务器在处理请求的过程中发生了错误 HTTP状态码列表: HTTP状态码列表状态码状态码英文名称中文描述100Continue继续。...所请求的资源未修改,服务器返回此状态码时,不会返回任何资源。客户端通常会缓存访问过的资源,通过提供一个头信息指出客户端希望只返回在指定日期之后修改的资源305Use Proxy使用代理。...,超时409Conflict服务器完成客户端的 PUT 请求时可能返回此代码,服务器处理请求时发生了冲突410Gone客户端请求的资源已经不存在。...410不同于404,如果资源以前有现在被永久删除了可使用410代码,网站设计人员可通过301代码指定资源的新位置411Length Required服务器无法处理客户端发送的不带Content-Length
客户端和服务器错误概述 客户端错误或从 400 到 499 的 HTTP 状态代码是用户客户端(即 Web 浏览器或其他 HTTP 客户端)发送 HTTP 请求的结果。...服务器错误,或从 500 到 599 的 HTTP 状态代码,当 Web 服务器知道发生了错误或无法处理请求时,它会返回。...举个排除403错误的例子,假设以下情况: 用户正在尝试访问 Web 服务器的索引文件,从 http://example.com/index.html Web 服务器工作进程归www-data用户所有 在服务器上...例如,如果用户尝试访问 http://example.com/emptydir/,而 emptydir服务器上的目录中没有索引文件,则会返回 403 状态。...如果您希望启用目录列表,您可以在您的 Web 服务器配置中这样做。 404 未找到 404 状态代码或Not Found 错误意味着用户能够与服务器通信,但无法定位请求的文件或资源。
状态码位于响应的起始行中 比如,在行 HTTP/1.0 200 OK 中,状态码就是200 客户端向一个 HTTP 服务器发送请求报文时,会遇到很多意想不到的情况,请求不一定能够成功完成。...状态码的目的是对这样的情况进行优化:HTTP 客户端应用程序有一个实体的主体部分要发送给服务器,但希望在发送之前查看一下服务器是否会接受这个实体。...客户端应用程序只有在避免向服务器发送一个服务器无法处理或使用的大实体,才应该使用 100 Continue 200 ~ 299,成功状态码 客户端发起请求时,这些请求通常都是成功的。...~ 499,客户端错误状态码 有时客户端会发送一些服务器无法处理的东西,比如格式错误的请求报文,或者最常见的是,请求一个不存在的 URL 很多客户端错误都是由浏览器来处理的,甚至不会打扰到你。...这可能是客户端碰上了服务器的缺陷,或者服务器上的子元素,比如某个网关资源,出了错 代理尝试着代表客户端与服务器进行交流时,经常会出现问题。
类似request的对象,其实是绑定到了werkzeug.local.Local对象上。这样,在多线程中,每个对象都是隔离的。说白了就是,不同用户访问时,数据是独立的。...请求的方法 GET:从服务器上获取资源 POST:在服务器上新创建一个资源 PUT:在服务器上更新资源(客户端提供所有改变后的数据) PATCH在服务器上更新资源(客户端只提供需要改变的属性) DELETE...:从服务器上删除资源 状态码 状态码 原生描述 描述 200 ok 服务器成功响应客户端请求 400 invalid request 用户发出的请求有误,服务器没有进行新建或修改数据的操作 401 unauthorized...用户没有权限访问这个请求 403 forbidden 因为某些原因禁止访问这个请求 404 not found 用户发送请求的url不存在 406 not acceptable 用户请求不被服务器接收...Flask-Restful 安装: Flask-Restful需要在Flask 0.8以上的版本,在Python2.6或者Python3.3上运行。
前言 flask 运行请求出现异常时,会先触发对应的异常钩子,比如出现404时,会根据NotFound 异常类返回404状态码。...", "msg": "请求参数不合法" } 处理 在处理请求时,当 Flask 捕捉到一个异常时,它首先根据代码检索。如果该代码没 有注册处理器,它会根据类的继承来查找,确定最合适的注册处理器。...当一个蓝图在处理抛出异常的请求时,在蓝图中注册的出错处理器优先于在应用中全 局注册的出错处理器。 但是,蓝图无法处理 404 路由错误,因为 404 发生的路由级 别还不能检测到蓝图。...但是,与在 Python 使用 except Exception: 类似,这样会捕 获 所有 未处理的异常,包括所有 HTTP 状态码。因此,在大多数情况下,设定 只针对特定异常的处理器比较安全。...未处理的异常 500 当一个异常发生时,如果没有对应的异常处理器,那么就会返回一个 500 内部服务错误。关于此行为的更多内容参见 flask.Flask.handle_exception() 。
领取专属 10元无门槛券
手把手带您无忧上云