url格式

diango入门

廉价感情. 提交于 2019-12-11 23:28:54
web复习 五层 应用层 传输层 网络层 数据链路层 物理层 socket 套接字 位于应用层和网络传输层之间的虚拟层 一组接口 c/s-->b/s web框架 原理 1.百度 socket 服务端 2.socket服务端启动 3.绑定ip和端口 4.监听等待连接 8.接受数据 9.返回数据 12断开连接 浏览器socket客户端 5.socket服务端启动 6.连接(ip和端口) 7.发送数据 10.接受数据 11.断开连接 web框架本质--> socket服务端 超文本 双工通信 HTTP工作原理 在浏览器地址栏键入URL,按下回车之后会经历以下流程: 浏览器向 DNS 服务器请求解析该 URL 中的域名所对应的 IP 地址; 解析出 IP 地址后,根据该 IP 地址和默认端口 80,和服务器建立TCP连接; 浏览器发出读取文件(URL 中域名后面部分对应的文件)的HTTP 请求,该请求报文作为 TCP 三次握手的第三个报文的数据发送给服务器; 服务器对浏览器请求作出响应,并把对应的 html 文本发送给浏览器; 释放 TCP连接; 浏览器将该 html 文本并显示内容; HTTP状态码 所有HTTP响应的第一行都是状态行,依次是当前HTTP版本号,3位数字组成的状态代码,以及描述状态的短语,彼此由空格分隔。 状态代码的第一个数字代表当前响应的类型: 1xx消息—

03-Vue-resource

橙三吉。 提交于 2019-12-10 10:35:38
七.vue-resource vue 可以通过vue-resource发送数据请求 !!! 第一步要导包 !!! 注意;vue-resource.js 依赖于 vue.js 所以要注意顺序 <script src="js/vue-2.4.0.js"></script> <script src="js/vue-resource-1.3.4.js"></script> 7.1 get请求 7.1.1 请求格式 get [url] [options] this.$http.get('url').then(function (result){ success(){}, error(){} }) 7.2 post请求 7.2.1 请求格式 post [url] [body](数据对象) [options] this.$http.post('url',data,{ emulateJSON: true } ).then(result =>{ success(){}, error(){} }) 来源: https://www.cnblogs.com/hardywen/p/12014860.html

批量图片打包zip下载

只愿长相守 提交于 2019-12-07 12:43:29
批量图片打包zip下载 import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.DataInputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.HttpURLConnection; import java.net.URL; import java.net.URLEncoder; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; import javax.servlet.http.HttpServletRequest; import javax.servlet.http

web框架的本质及自定义web框架

柔情痞子 提交于 2019-12-05 17:31:45
web框架 简单版回复页面框架 import socket server = socket.socket() server.bind(('127.0.0.1',8001)) # 127.0.0.1:8001 server.listen() while 1: conn,addr = server.accept() from_brower_msg = conn.recv(1024) # print(from_brower_msg) path = from_brower_msg.decode('utf-8').split(' ')[1] print(path) conn.send(b'HTTP/1.1 200 ok\r\n\r\n') if path == '/': with open('04test.html','rb') as f: data = f.read() elif path == '/style.css': with open('style.css', 'rb') as f: data = f.read() elif path == '/test.js': with open('test.js', 'rb') as f: data = f.read() elif path == '/1.jpg': with open('1.jpg', 'rb') as f: data =

python --- requests模块

♀尐吖头ヾ 提交于 2019-12-05 09:05:37
1、先下载requests模块 import requests url = 'http://api.nnzhp.cn/api/user/stu_info' res = requests.get(url,{'stu_name':'xiaohei'}) #res = requests.request('get',) print(res.json()) #只能接受json格式的响应体 print(res.text) #响应体有xml、json、html格式,可以用response.text来接收 print(res.headers) print(res.status_code) 2、 3、 来源: https://www.cnblogs.com/hzgq/p/11917948.html

[网络]HTTP

余生颓废 提交于 2019-12-04 10:31:40
HTTP HTTP 简介   HTTP 协议是 Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web)服务器传输超文本到本地浏览器的传送协议。   HTTP 是基于 TCP/IP 通信协议来传输数据(HTML 文件,图片文件,查询结果等)。   HTTP 是面向事务的应用层协议。   所谓面向事务就是指一系列的信息交换,这些交换的信息是一个整体,要么这些信息全部交换,要么就不交换。   HTTP 不仅能传送文本跳转所必须的信息,而且也能传输任何能在互联网上得到的信息。   HTTP 协议主要就是用来进行客户端和服务器端之间进行通信的标准协议。HTTP 主要规定了客户端如何与服务器端建立链接,客户端如何从服务器请求数据,服务器如何响应请求,以及最后连接如何关闭。   每个万维网网点都有一个服务器进程,用来监视 TCP 的端口 80,以便发现是否有浏览器向它发出建立连接请求,一旦监听到需要建立 TCP 连接,浏览器就会向万维网发出浏览某个页面的请求,而万维网对这个请求的页面做出响应,最后,TCP 连接释放。在浏览器和服务器之间的请求与响应的交互,必须按照一定的格式和规则,这些格式和规则就是超文本传输协议 HTTP。 HTTP 工作原理   HTTP 协议工作于客户端-服务端架构上。浏览器作为 HTTP

AJAX

▼魔方 西西 提交于 2019-12-02 16:51:51
AJAX 一、什么是 JSON ? JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation) JSON 是轻量级的文本数据交换格式 JSON 独立于语言 * JSON 具有自我描述性,更易理解 * JSON 使用 JavaScript 语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 合格的json对象(json只认双引的字符串格式): ["one", "two", "three"] { "one": 1, "two": 2, "three": 3 } {"names": ["张三", "李四"] } [ { "name": "张三"}, {"name": "李四"} ]  二、stringify与parse方法 JavaScript中关于JSON对象和字符串转换的两个方法: JSON.parse(): 用于将一个 JSON 字符串转换为 JavaScript 对象(json只认双引的字符串格式) JSON.parse('{"name":"Howker"}'); JSON.parse('{name:"Stack"}') ; // 错误 JSON.parse('[18,undefined]') ; // 错误 JSON.stringify(): 用于将

Django-DRF框架

旧巷老猫 提交于 2019-12-01 04:40:02
一、RESTfull设计风格 1、什么是RESTfull?   1) REST :即 Representational State Transfer 的缩写。维基百科称其为“ 具象状态传输 ”,国内大部分人理解为“ 表现层状态转化 ”。   2) 具象的 :就是指表现层,要表现的对象也就是“资源”,什么是资源呢?网站就是资源共享的东西,客户端(浏览器)访问web服务器,所获取的就叫资源。比如html,txt,json,图片,视频等等。   3) 表现 :比如,文本可以用txt格式表现,也可以用HTML格式、XML格式、JSON格式表现,甚至可以采用二进制格式;图片可以用JPG格式表现,也可以用PNG格式表现。        浏览器通过URL确定一个资源,但是如何确定它的具体表现形式呢?应该在HTTP请求的头信息中用 Accept 和 Content-Type 字段指定,这两个字段才是对"表现层"的描述。   4) 状态转换 : 就是客户端和服务器互动的一个过程,在这个过程中, 势必涉及到数据和状态的变化, 这种变化叫做状态转换。          互联网通信协议HTTP协议,客户端访问必然使用HTTP协议,如果客户端想要操作服务器,必须通过某种手段,让服务器端发生"状态转化"(State Transfer)。    总结:     REST与技术无关,代表的是一种软件架构风格   

django2.x 路径转换器

随声附和 提交于 2019-11-30 20:53:10
路径转换器 在Django2.0其中一个新特性为: 简化Url路由的语法 。 在代码上主要体现在新增了django.urls.path函数,它带来了更简洁、更可读的路由语法,如: 原来的url url(r'^articles/(?P<year>[0-9]{4})/$', views.year_archive), Django2.0新语法 path('articles/<int:year>/', views.year_archive), 新语法支持url参数的类型转化。例子里的year_archive函数接收到的year参数作为参数,并且会自动转换year为整型而不是字符串。 在Django1.x里,我们需要对year做类型转换: def year_archive(request, year): year = int(year URL参数捕获 在新的语法里,url字符串有以下规则: 在url里使用尖括号“<>”来捕获值 尖括号捕获值的格式<converter:name>。其中converter为路径转换器,name为参数名,如<int:year>。对于捕获的值没有路径转换器,那么它会匹配除了斜杠"/"外的所有字符作为捕获的值。 url不需要以斜杠开头。 代码示例 from django.urls import path from . import views urlpatterns

草稿

a 夏天 提交于 2019-11-29 22:37:38
路由分发(******) 当你的django项目特别庞大的时候 路由与视图函数对应关系特别特别多 那么你的总路由urls.py代码太过冗长 不易维护 每一个应用都可以有自己的urls.py,static文件夹,templates文件夹(******) 正是基于上述条件 可以实现多人分组开发 等多人开发完成之后 我们只需要创建一个空的django项目 然后将多人开发的app全部注册进来 在总路由实现一个路由分发 而不再做路由匹配(来了之后 我只给你分发到对应的app中) 当你的应用下的视图函数特别特别多的时候 你可以建一个views文件夹 里面根据功能的细分再建不同的py文件(******) urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^app01/',include('app01.urls')), url(r'^app02/',include('app02.urls')), ] 名称空间(了解) 多个app起了相同的别名 这个时候用反向解析 并不会自动识别应用前缀 如果想避免这种问题的发生 方式1: 总路由 url(r'^app01/',include('app01.urls',namespace='app01')) url(r'^app02/',include('app02.urls',namespace=