测开之路三十一:Flask基础之请求与相应
from flask import request
request.path
request.method
request.form
request.args
request.values
一般用form获取post的参数,用args获取get的参数,如果不想区分get和post,则用value获取
创建路由

访问

控制台

flask路由默认只支持get请求,而浏览器默认发的是get请求,所以没问题,在没有声明请求方法的情况下,当发post请求时,就会报405

在路由里面声明post请求,再访问


再看控制台

这个时候再用get请求,又报错

在路由里面把get也加上再访问


返回json字符串,如,把请求参数转json再返回
第一种方式,用python自带的json库

get

post

第二种方式,用flask里面的jsonify

get

post

使用get方法实现计算器,例如请求为http://localhost:8888/calculator?method=add&a=3&b=5则返回3+5=8,计算器支持四则运算:add\sub\mul\div

@app.route('/calculator')
def calculator():
    data = request.values.to_dict()
    mothod = data.get('method', 'add')
    try:
        a = float(data.get('a', 0))
        b = float(data.get('b', 0))
        if mothod == 'add':
            return f'{a}+{b}={a+b}'
        elif mothod == 'sub':
            return f'{a}-{b}={a-b}'
        elif mothod == 'mul':
            return f'{a}*{b}={a*b}'
        elif mothod == 'div':
            return f'{a}/{b}={a/b}'
        else:
            return '不支持的运算'
    except Exception as erro:
        return str(erro)






测开之路三十一:Flask基础之请求与相应的更多相关文章
- 测开之路三十二:Flask基础之错误与重定向
		错误处理,框架默认的错误为:not Found 可以捕获,并自定义 准备一张自定义图片,放在static文件夹下,并在template下创建一个html文件,引用该图片 捕获404状态,返回自定义页面 ... 
- 测开之路三十:Flask基础之jinja2模板继承
		实现某些位置的内容固定,某些位置的内容动态展示,如: 中文文档地址:http://docs.jinkan.org/docs/jinja2/templates.html#template-inherit ... 
- 测开之路三十三:Flask实现扎金花游戏
		访问http://localhost:8888/game随机获取一张扑克牌.豹子(炸弹):三张点相同的牌.例:AAA.222.顺金(同花顺.色托):花色相同的顺子.例:黑桃456.红桃789.最大的顺 ... 
- 测开之路三十九:js基础
		js的两种使用方式 第一种使用方式:单独写js文件 在static下新建一个js文件并写入内容 alert('这是一个弹窗'); 在html文件里面,用script标签引入 <script sr ... 
- 测开之路九十一:css常用的选择器
		一:全局选择器:* 二:标签选择器,如给所有p标签加个背景色 三:id选择器:# ,如给id为id_01的元素加一个框 四:类选择器:. 如设置一个类选择器为blue,当有标签引用blue的时候,背景 ... 
- 测开之路六十一:接口测试平台之interface蓝图
		create的js //添加header的函数function add_header() { // 这里是动态拼接html语句,带着样式,拼凑成页面的 "key [] value []&qu ... 
- 测开之路三十八:css布局之定位
		常用的布局方式: static:静态定位(默认),什么都不用管,元素会按照默认顺序排列,排不下是会默认换行relative:相对定位(同一层),相对于某一个元素进行定位fixed:绝对定位,指定位置a ... 
- 测开之路三十六:常用的css选择器
		在static下新建一个css,并写入内容 /*标签选择器,label标签的颜色为红色*/label {color: red;} /*.代表类选择器,绿色*/.test {color: green;} ... 
- 测开之路八十一:参数定义之*args和**kwargs
		# *,不定长参数,*args# 定义函数参数def avg(score, *scores): return (score + sum(scores)) / (len(scores) + 1) ... 
随机推荐
- IDF-CTF-cookie欺骗 writeup
			题目链接: http://ctf.idf.cn/index.php?g=game&m=article&a=index&id=40 知识点:base64解码, cookie欺骗 ... 
- [Python3] 022 面向对象 第二弹
			目录 6. 面向对象的三大特性 6.1 封装 6.1.1 私有 private 6.1.2 受保护 protected 6.1.3 公开 public 6.2 继承 6.2.1 继承的概念与作用 6. ... 
- centos下Linux C语言MD5的使用
			在Linux C变成中用到MD5加密会使用到openssl库,下面给出的是一个简单的小Demo: #include <stdio.h> #include <openssl/md5.h ... 
- luogu P3919 [模板]可持久化数组(可持久化线段树/平衡树)(主席树)
			luogu P3919 [模板]可持久化数组(可持久化线段树/平衡树) 题目 #include<iostream> #include<cstdlib> #include< ... 
- Java 小技巧和在Java避免NullPonintException的最佳方法(翻译)
			前几天就g+里面看到有人引用这篇博文.看了一下.受益颇多. 所以翻译过来,希望和大家一起学习.本人英语水平有限,假设有错,请大家指正. 原文地址(须要翻墙):http://ja ... 
- Android APP 登陆模块
			首先我想强调一点.这个登陆的模块最好是放在另外一个线程里面来实现.否则有可能会爆出一系列的问题, 然后再与主UI 交互.这样就不会爆ANR异常 1.对于登陆模块的.首先大体的逻辑肯定是要清晰的. ... 
- NGUI的widget的使用
			一,我们看看widget有什么属性,如下图: 二,Pivot是什么意思? 我们都知道在Untiy3D中有一个中央坐标点,而这个Pivot这个就是选择控件的某一个点与中央坐标点定位. 如下图区别: 当你 ... 
- go中布尔类型bool的用法
			示例 // bool布尔类型的用法 package main import ( "fmt" "unsafe" ) func main() { // bool类型 ... 
- 安卓构架组件——向项目添加组件(Adding Components to your Project)
			在开始之前,建议阅读 应用架构指南. Before getting started, we recommend reading the Architecture Components Guide to ... 
- Hibernate与 MyBatis的区别
			第一章 Hibernate与MyBatis Hibernate 是当前最流行的O/R mapping框架,它出身于sf.net,现在已经成为Jboss的一部分. Mybatis 是另外一种优秀 ... 
