教你分分钟搞定Python之Flask框架
用最短的时间开发一个数据操作接口,Python是王道!

一、安装pip
、首先检查linux有没有安装python-pip包,终端执行 pip -V
[root@ network-scripts]# pip -V
-bash: pip: command not found
、没有python-pip包就执行命令 yum -y install epel-release
[root@ network-scripts]# yum -y install epel-release
、执行成功之后,再次执行yum -y install python-pip
[root@ network-scripts]# yum install python-pip
、对安装好的pip进行升级 pip install --upgrade pip
[root@ network-scripts]# pip install --upgrade pip
至此,pip安装好了,执行pip -V 再次检查pip环境。
[root@ network-scripts]# pip -V
pip 9.0. from /usr/lib/python2./site-packages (python 2.7)
二、下载Flask模块
pip install flask
三、新建app.py文件
#!flask/bin/python
# -*- coding: utf- -*-
from flask import Flask,request
import sys
import os
reload(sys)
sys.setdefaultencoding('utf8')
sys.path.append('./service')
from a import AClass
app = Flask(__name__)
@app.route('/', methods=['GET'])
def index():
return "Hello, World!"
@app.route('/list', methods=['GET'])
def id():
m = request.args.get('m')
return "你好!" + m
@app.route('/cmd', methods=['GET'])
def test():
cmd = request.args.get('cmd')
var=os.popen(cmd).read( )
return var
@app.route('/pwd', methods=['GET'])
def pwd():
f = open('/etc/passwd','r')
pwd = f.read()
f.close()
return pwd
@app.route('/shell', methods=['GET'])
def shell():
var=os.popen('{ echo 1; }| ./service/git.sh').read( )
return var
@app.route('/tt', methods=['GET'])
def tt():
a = AClass()
return a.add()
if __name__ == '__main__':
app.run(debug=True,host='192.168.213.15',port=)
四、新建service目录与a.py
class AClass:
def add(self):
return "ok"
五、启动服务
python ./app.py
六、访问服务
curl http://192.168.213.15:28222/
教你分分钟搞定Python之Flask框架的更多相关文章
- 分分钟搞定Python之排序与列表
排序时程序中用得比较多的方法了.在Python中,最简单的排序方法摸过与使用内置的sorted(list)这个函数了,该函数一一个列表作为参数返回一个新的列表,只不过是把旧列表中的元素排过序了.原列表 ...
- 转载:教你分分钟搞定Docker私有仓库Registry
一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法 ...
- 教你分分钟搞定Docker私有仓库Registry
一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方,我们可以在上面找到我们想要的镜像,也可以把我们自己的镜像推送上去.但是,有时候我们的服务器无法 ...
- (转)教你分分钟搞定Docker私有仓库Registry
转:https://www.cnblogs.com/Javame/p/7389093.html 一.什么是Docker私有仓库Registry 官方的Docker hub是一个用于管理公共镜像的好地方 ...
- 【转载】教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神
原文:教你分分钟学会用python爬虫框架Scrapy爬取心目中的女神 本博文将带领你从入门到精通爬虫框架Scrapy,最终具备爬取任何网页的数据的能力.本文以校花网为例进行爬取,校花网:http:/ ...
- 转载 12步轻松搞定python装饰器
作者: TypingQuietly 原文链接: https://www.jianshu.com/p/d68c6da1587a 呵呵!作为一名教python的老师,我发现学生们基本上一开始很难搞定pyt ...
- Python高级特性: 12步轻松搞定Python装饰器
12步轻松搞定Python装饰器 通过 Python 装饰器实现DRY(不重复代码)原则: http://python.jobbole.com/84151/ 基本上一开始很难搞定python的装 ...
- 【原型实战】分分钟搞定Unsplash网站原型设计
网站原型设计是我们在设计网页过程中必不可少的一步,激烈的市场竞争让我们不得不对产品进行快速迭代,如何高速有效的进行原型设计成为了设计师头疼的问题.本文将以unsplash网站为实例,教大家快速搞定we ...
- 12步轻松搞定Python装饰器
译者:寒寻 译文:http://www.cnblogs.com/imshome/p/8327438.html 原文:https://dzone.com/articles/understanding-p ...
随机推荐
- Vuejs——(12)组件——动态组件
版权声明:出处http://blog.csdn.net/qq20004604 目录(?)[+] 本篇资料来于官方文档: http://cn.vuejs.org/guide/components ...
- InstallShield 创建 visual studio 工程的时候 指向 任意 visual studio 版本 方法 (修改 计算机 默认 visual studio shell 版本)
这需要 修改 计算机 默认 visual studio shell 版本 注册表 HKEY_CLASSES_ROOT VisualStudio.DTE 配置节点 描述的是 默认的 visual stu ...
- C++数组,sort
cmake_minimum_required(VERSION 3.5) project(Test) add_executable( te test.cpp ) test.cpp #include &l ...
- js验证身份证号,超准确
js验证身份证号,超准确 看程序前先来了解下身份证号的构成:身份证号分为两种,旧的为15位,新的为18位.身份证15位编码规则:dddddd yymmdd xx p 其中 dddddd:地区码 ...
- Spring Cloud Finchley 正式发布,包含 4 个重大更新!
在 Spring 的官方博客上已经看到 Spring Cloud Finchley 在 06 月 19 日这一天正式发布了,我们在 Maven 中央仓库也看到了最新版的更新. Finchley 正式版 ...
- win10 + gtx1060 + cuda8.0 + caffe + vs2013 + Tensorflow + PyTorch
一. 安装cuda8.0 1)先去官网下载cuda8.0 https://developer.nvidia.com/cuda-toolkit 2)下载完之后进行安装,安装时间有点长,请耐心等待,默认 ...
- 从零开始学 Spring Boot
1.下载 spring-tool-suite https://spring.io/tools3/sts/legacy 2.解压运行 sts-bundle\sts-3.9.7.RELEASE\STS.e ...
- Json数据中同字段不同数据类型的解析
当解析Json数据时,如果碰到同字段不同数据类型的情况,如何处理呢?比如: [ { "code": 1, "data": 33 }, { "code& ...
- SpringBoot集成Redis
1.引入 spring-boot-starter-redis <dependency> <groupId>redis.clients</groupId> <a ...
- C++学习总结(2)
1.const指针 指向常量的指针变量,其一般形式为 "const 类型名 * 指针变量名 " . 如下: int a=12,b=15; const int *p=&a; ...