技术标签: python_Flask框架
tags:
categories:
@blue.route('/')
def index():
#渲染模板和传参 {
{ msg }}
#return render_template('index.html', msg="今天天气好")
return 'Hello Flask'
# 传 整型参数
@blue.route('/users/<int:id>/')
def users(id):
# 将参数约束为数值类型, 浏览器写其他参数报错
print(id)
return 'Get Int %s' % str(id)
# 传 字符串参数 不设约束时默认(string).
# 传空或者参数中有/ 。报错找不到。
@blue.route('/getinfo/<string:token>/')
def getinfo(token):
print(token)
return 'Get String Success %s' % (token)
# 传 路径参数
# 这里同样不能传空
@blue.route('/getpath/<path:address>/')
def getpath(address):
print(address)
return 'Get PATH Successs {}'.format(address)
# 传 UUID参数
@blue.route('/getuuid/<uuid:uu>/')
def getuuid(uu):
# 网上找一个uuid测试:d6132fce-910d-4261-85c3-e537ce055e05
print(uu)
return 'Get UUID Success {}'.format(uu)
# 传 any参数 穷举(只能选a或b)
@blue.route('/getany/<any(a,b):an>')
def getany(an):
print(an)
return 'Get Any Success {}'.format(an)
@blue.route('/getnotice/<string:notice>/')
@blue.route('/getnotice/<uuid:notice>/')
def getnotice(notice):
# 一个函数上面可以映射多个路由。
# 可以出现相同的两个路由不报错。访问时以第一个路由为主。
print(notice)
return 'Get notice Success %s' % (notice)
@blue.route('/', methods=['GET', 'POST'])
def index():
#渲染模板和传参 {
{ msg }}
#return render_template('index.html', msg="今天天气好")
return 'Hello Flask'
# 重定向函数
@blue.route('/redirect/')
def red():
# 这种属于 硬编码
return redirect('/')
# 反向路由
@blue.route('/redirect1/')
def red1():
# 这种属于 反向解析
# 有蓝图 蓝图 + 函数
# 没有蓝图 直接路由函数
return redirect(url_for('blue.index'))
# 反向路由传参
@blue.route('/redirect2/')
def red2():
# 反向路由传参
return redirect(url_for('blue.getany', an='a'))
属性 | 属性的意义 |
---|---|
url | 完整请求地址 |
base url | 去掉GET参数的URL |
host url | 只有主机和端口号的URL |
path | 路由中的路径 |
method | 请求方法 |
remote addr | 请求的客户端地址 |
args | GET请求参数 |
form | 请POST请求参数 |
files | 文件上传 |
headers | 请求头 |
cookies | 请求中的cookie |
# Request对象由Flask框架生成
@blue.route('/getrequest/')
def get_request():
print(request.host)
print(request.url)
if request.method == 'GET':
print('GET')
return 'Get request Success '
# args 接收GET请求参数
# http://127.0.0.1:5000/sendrequest/?user=Rock&password=rock1204
@blue.route('/sendrequest/')
def send_request():
# 列表下把参数变为元组
print(request.args) #ImmutableMultiDict([('user', 'Rock'), ('password', 'rock1204')])
print(type(request.args))
return 'Send request Success '
# form接收POST参数
# 用PostMan模拟请求
@blue.route('/sendrequest1/', methods=['GET', 'POST'])
def send_request1():
# POST方式时GET的的参数也能获取到
print(request.args)
print(type(request.args))
print(request.form)
print(type(request.form))
print(request.headers)
return 'Send request Success '
@app.errorhandler(404)
def handler_error(error):
return 'Error'
# Response 对象
@blue.route('/getresponse/')
def get_response():
# return 'Hello sleeping ', 404 # 返回状态码404
# result = render_template('HelloURL.html')
# print(result)
# print(type(result))
# return result
# response = make_response('<h1>帅吗?</h1>')
# print(response, type(response)) #<Response 18 bytes [200 OK]> <class 'flask.wrappers.Response'>
abort(404) #终止请求
response = Response('自己造一个Response')
return response
@blue.errorhandler(404)
def handler_error(error):
print(error)
print(type(error))
return 'What'
@blue.route('/login/', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
response = Response('登录成功%s' % username)
# 设置Cookie
response.set_cookie('username', username)
return response
# 获取cookie中的信息
@blue.route('/mine/')
def mine():
username = request.cookies.get('username')
return '欢迎回来'
@blue.route('/login/', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return render_template('login.html')
elif request.method == 'POST':
username = request.form.get('username')
response = Response('登录成功%s' % username)
# 设置Cookie
#response.set_cookie('username', username)
# 设置Session
# 报错The session is unavailable because no secret key was set. Set the secret_key on the application to something unique and secret.
session['username'] = username
return response
# 获取cookie中的信息
@blue.route('/mine/')
def mine():
username = session.get('username')
return '欢迎回来'
文章浏览阅读213次。一、基于JAX-WS的Web Service服务端/客户端下面描述的是在main函数中使用JAX-WS的Web Service的方法,不是在web工程里访问,在web工程里访问,参加第二节。JAX-WS简介:JAX_RPC(Java API for XML-Based RPC)允许Java应用程序可以通过已知的描述信息调用一个基于Java的Web服务,描述信息与Web服务的W..._基于sum-jaxwx开发的webservice获取客户端ip的方法
文章浏览阅读965次。[论文题目]:Machine learning: Trends, perspectives, and prospects[论文来源]:Machine learning: Trends, perspectives, and prospects[翻译人]:BDML@CQUT实验室Machine learning:Trends,perspectives, and prospects机器学习:趋势、观点和前景M. I. Jordan1* and T. M. Mitchell2*AbstractMach_机器学习论文翻译3000字以上
文章浏览阅读63次。1、配置文件的位置在目录 /etc/ 下面,有个名为vimrc的文件,这是系统中公共的vim配置文件,对所有用户都有效。而在每个用户的主目录下,都可以自己建立私有的配置文件,命名为:“.vimrc”。例如,/root目录下,通常已经存在一个.vimrc文件。如果不知道配置文件及脚本的位置,可以在vim中使用命令 :scriptnames,将显示如下路径/etc/vimrc/usr/..._vim 缩进部分高亮显示
文章浏览阅读967次。“有两种编写无错误程序的方法;只有第三种有效。” -艾伦·J·佩利斯 在关键计算机应用程序的生命周期中,日志记录是非常重要的活动,尤其是在故障症状不明显时。 日志记录提供了故障之前应用程序状态的最大详细信息,例如变量的值,函数的返回值等。 在一段时间内会生成单调增加的跟踪数据,并将其连续写入磁盘上的文本文件中。 有效的日志记录需要大量磁盘空间,并且在多线程环境中(其中有多个线程写入其跟踪信..._线程间同步 环形缓冲区
文章浏览阅读4.7k次,点赞4次,收藏14次。我的cuda 8.0的下载链接为:https://developer.nvidia.com/compute/cuda/8.0/Prod2/local_installers/cuda_8.0.61_375.26_linux-runcudnn 6.0的下载链接为:https://developer.nvidia.com/compute/machine-learning/cudnn/s..._ubuntu18安装cudnn-8.6.0
文章浏览阅读269次。石家庄铁道大学信息科学与技术学院实验报告2018年----2019年 第一学期题目:四则运算、生成验证码课程名称:JAVA语言程序设计班 级:信1705-2班姓 名:赵墨涵学号:20173623指导教师:王建民正文部分格式要求:1、正文汉子部分要求宋体小四,行间距固定值20磅;首行缩进两个字符。2、程序英文部分要求采用Times New Roman字体,行间距固定值20磅,程序缩..._石家庄铁道大学大二上学期java实验报告
文章浏览阅读79次。Python join() 方法与os.path.join()的区别pythonJoinos.path.join今天工作中用到python的join方法,有点分不太清楚join() 方法与os.path.join()的区别,查了下,写个例子记录下,发现python的有些功能挺强大的,写了几行代码就搞定了,要是用c/C++,估计要多写很多行代码。 1. 函数作用:join() :将序...
文章浏览阅读2.5k次。VS code 的简单入门使用方法背景本文仅仅将vs code 作为文本工具来用,并非将其作为IDE开发工具(替代类似Windows 中的Notepad++)。本文仅讨论 Mac 平台的 vs code。常见问题如何使用 Markdowncmd+shift+p打开命令行,搜索Markdown: Open Preview to the Side需要注意的是,临时文件搜不到这个,必须先保存为 *.md 然后上面的方式操作。功能整体临时用用还行,比Typora差远了默认打开文件的时候换_vs code怎么把关键字像notapad一样放在一栏
文章浏览阅读2.4k次。小程序异常监控收集web端与小程序错误监控差异在 Web 端监测的是页面完整的 url,而小程序端监测的是路由地址;小程序页面属于app内部的页面,使用时已全部加载完毕,因此监控页面性能时不统计页面加载时长等信息,更多的是对页面内请求、资源请求和用户行为的监控;由于微信官方和小程序代码的要求,集成方式对比 Web 端会相对严格一些。小程序需要监控的数据JavaScript异常监控..._小程序 代码异常监控
文章浏览阅读815次。机器学习综述摘要 本文主要参考中科院自动化研究所复杂系统与智能科学实验室王珏研究员《关于机器学习的讨论》,讨论机器学习的描述,理论基础,发展历史以及研究现状。关键字:机器学习,科学依据,发展脉络0引言 20世纪90年代初,当时的美国副总统提出了一个重要的计划——国家信息基本设施计划(NationalInformation Infrastructur..._关于分类器的综述
文章浏览阅读65次。下载并安装CMake3.0.1 要自己编译OpenCV2.4.9的源代码。首先。必须下载编译工具,使用的比較多的编译工具是CMake。以下摘录一段关于CMake的介绍: CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描写叙述全部平台的安装(编译过程)。他可以输出各种各样的makefile或者project文件,能測试编译器所支持的C 特性..._opencv报告
文章浏览阅读3.7k次,点赞2次,收藏10次。多模态训练时候导致的单模态缺损,需要同时考虑单模态损失_多模态融合不如单模态