修改web前端访问端口
说明: URL规则可添加变量部分,也就是说将符合同种规则的URL抽象成一个URL模式
|
1
2
3
|
@app.route('/instance/<uuid>/')def instance(uuid): return 'Instance: {}'.format(uuid) |
注意: 尖括号中内容是动态的,凡是匹配到/instance/前缀的都会被映射到这个路由上,在内部把uuid作为参数而获得,默认类型为字符串
默认转换:
说明: 可通过<converter:variable_name>形式来指定转换方式,converter可以是如下默认转换器,也可以是继承自werkzeug.routing.BaseConverter子类定义的转换器
| 转换(默认的转换器存储在app.url_map.converts字典里,支持自定义) | 简单 |
| string | 接收没有任何斜杠/的文本 |
| int | 接收整型 |
| float | 接收浮点型 |
| path | 接收任意文本包含/的文本 |
| uuid | 接收唯一识别码 |
| any() | 和PY中的内置any用法一致,可指定多肿可选路径,但必须传入参数 |
扩展: 如上转换都是基于子路径,如果不想使用子路径,其实还可以通过GET/POST传递参数的方式给/instance,然后在视图函数内部通过request.args.get()和request.form.get()来获取实现
定义转换:
说明: FLASK还支持自定义转换器如Rebbit中使用分割符来实现如http://reddit.com/r/python+flask隔开两个社区名字,方便同时查看来自多个社区的帖子,我们可以自定义甚至不一定使用"+"来实现
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
#!/usr/bin/env python# -*- coding: utf-8 -*-"""## Authors: limanman# 51CTOBG: http://xmdevops.blog.51cto.com/# Purpose:#"""# 说明: 导入公共模块from flask import Flask, jsonifyfrom werkzeug.routing import BaseConverter# 说明: 导入其它模块class ListConverter(BaseConverter): def __init__(self, url_map, separator=u'+'): super(ListConverter, self).__init__(url_map) self.separator = separator def to_python(self, value): return value.split(self.separator) def to_url(self, values): values_quoted = [] for value in values: values_quoted.append(BaseConverter.to_url(value)) return self.separator.join(values_quoted)app = Flask(__name__)app.url_map.converters.update({ 'list': ListConverter})@app.route('/r/<list(separator=u"+"):page_names>/')def r(page_names): return jsonify(page_names)if __name__ == '__main__': app.run(host='0.0.0.0', port=9000, debug=True) |
注意: 继承werkzeug.routing.BaseConverter的类必须实现两个方法to_python(value),它定义了匹配的路径以何种方式传入视图函数,to_url(value),它定义了传入视图函数的参数的路径原型的编码后形式,它是供内部调用,但也是必须实现的方法,最后需要将ListConverter放到app.url_map.converters中去才会运行时生效,按照如上转换器访问http://127.0.0.1:9000/python+flask/时传入视图函数的参数page_names其实是一个被分割的列表[u'python', u'flask'],这样我们就可以模拟Reddit实现同时获取多个社区帖子
提交方法:
说明: HTTP有多个访问URL的方法,默认只响应GET,但可以通过app.route装饰器传递methods参数改变此行为,默认FLASK会自动处理HEAD/OPTIONS请求,常用GET/POST请求但随着AJAX和RESET风格应用的流行,PUT/DELETE/PATCH请求也使用很广泛~
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
#!/usr/bin/env python# -*- coding: utf-8 -*-"""## Authors: limanman# 51CTOBG: http://xmdevops.blog.51cto.com/# Purpose:#"""# 说明: 导入公共模块from flask import Flask, request, jsonify# 说明: 导入其它模块app = Flask(__name__)@app.route('/', methods=['GET', 'POST'])def index(): return jsonify([ request.args, request.form ])if __name__ == '__main__': app.run(host='0.0.0.0', port=9000, debug=True) |
说明: GET/POST是我们最常用的方式,至于获取GET/POST请求的参数分别用request.args和request.form来获取通过jsonify生成的响应我们可以看出来其实它们就是两个参数字典
唯一特性:
说明: FLASK的规则都是基于WerkZeug的路由模块,它规定URL唯一,当装饰器@app.route('/instance/')这样时访问/instance时会自动被修改为/instance/,而当装饰器@app.route('/instance')这样时访问/instance/会返回404,必须访问/instance才可以获取到你想要的内容~以此来保证唯一性~
修改web前端访问端口的更多相关文章
- web -- 前端访问后台跨区问题解决
package com.xindatai.ibs.web.filter; import java.io.IOException; import javax.servlet.Filter; import ...
- centos7修改xshell默认访问端口由22修改为62058
1.vim /etc/ssh/sshd_config 2.新加端口62058:Port 62058 3.重启sshd服务:systemctl restart sshd 4.将新加端口添加到防火墙并重启 ...
- Linux 修改zabbix server的web访问端口
在安装zabbix server的时候默认就安装了apache,zabbix依靠apache提供的web服务,修改Zabbix的浏览器访问端口,就是修改apache的服务端口(默认端口:80) 1.编 ...
- Maven入门---修改tomcat版本及端口及访问路径(四)
Maven中通过添加插件修改tomcat版本及端口及访问路径 --------------------------------------------------------------------- ...
- 修改panabit web管理介面端口
panabit使用mini_httpd为web发布平台,版本为1.19.使用https协议发布,端口443,运行命令为/usr/panabit/bin/ipe_httpd. panabit启动时使用/ ...
- 使用react全家桶制作博客后台管理系统 网站PWA升级 移动端常见问题处理 循序渐进学.Net Core Web Api开发系列【4】:前端访问WebApi [Abp 源码分析]四、模块配置 [Abp 源码分析]三、依赖注入
使用react全家桶制作博客后台管理系统 前面的话 笔者在做一个完整的博客上线项目,包括前台.后台.后端接口和服务器配置.本文将详细介绍使用react全家桶制作的博客后台管理系统 概述 该项目是基 ...
- Eclipse | 如何修改web项目的访问链接名,项目名
转: Eclipse | 如何修改web项目的访问链接名,项目名 2018-01-04 17:52:05 Mandsence 阅读数 2180更多 分类专栏: 其他 版权声明:本文为博主原创文章, ...
- ADFS修改默认访问端口
在安装Dynamics CRM部署IFD需要安装ADFS来进行身份验证.而ADFS默认会占用服务器的443端口.如果我们想自己使用443端口的话则需要修改ADFS的默认端口.(如果需要部署移动端的话还 ...
- Web前端名词释义及原理
引言:看题目的时候,不要觉得这是一个很深奥的问题,Web前端这些东西很多就是叫的名字牛逼,其实原理很TM简单,也就那么回事. 一.javascript名词释义 1.啥是事件队列? 就是 弄一个数组,里 ...
随机推荐
- CAP:Alantany 谈 CAP
引用Alantany的话:“CAP理论提出就是针对分布式数据库环境的,所以,P这个属性是必须具备的.P就是在分布式环境中,由于网络的问题可能导致某个节点和其它节点失去联系,这时候就形成了P(parti ...
- 移动电源、3G路由拆机
这款电源4400mAh,淘宝也就八十元左右,可以作为无线路由使用,可以插3G网卡,总的来说还算不错,关键是外观精美,网上一堆和华美A100那样的,可惜实在太丑,这款外观虽然漂亮,但是和一百多的相比不支 ...
- 异常 try catch finally return 执行关系 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- Java 基础【17】 异常与自定义异常
1.异常的分类 Throwable 是所有异常类的基类,它包括两个子类:Exception 和 Error. a. 错误 (Error) 错误是无法难通过程序来解决的,所以程序不应该抛出这种类型的对象 ...
- [Aaronyang紫色博客] 写给自己的WPF4.5-Blend5公开课系列 2-更进一步
我的文章一定要做到对读者负责,否则就是失败的文章 --------- www.ayjs.net aaronyang技术分享 欢迎大家支持我的力作<[Aaronyang] 写给自己的 ...
- 9.8 翻译系列:数据注解特性之--Required 【EF 6 Code-First系列】
原文链接:https://www.entityframeworktutorial.net/code-first/required-attribute-dataannotations-in-code-f ...
- export / import 温故而知新
认知一: 导出的对象被修改,依然会影响原来的对象. 仔细想想这是理所当然的事(说明导出的依然是对象指向内存的地址,所以通常还需要结合深拷贝使用) /** export const state = { ...
- 基于mindwave脑电波进行疲劳检测算法的设计(4)
上一次的实验做到可以从pc端读取到MindWave传输过来的脑电波原始数据了. 我是先定义一个结构体,该结构体对应保存所有能从硬件中取到的原始数据. struct FD_DATA { int batt ...
- 源码分析HotSpot GC过程(一)
«上一篇:源码分析HotSpot GC过程(一)»下一篇:源码分析HotSpot GC过程(三):TenuredGeneration的GC过程 https://blogs.msdn.microsoft ...
- ElasticSearch 内存那点事【转】
“该给ES分配多少内存?” “JVM参数如何优化?““为何我的Heap占用这么高?”“为何经常有某个field的数据量超出内存限制的异常?““为何感觉上没多少数据,也会经常Out Of Memory? ...