最近想自己写 Android 的接口,之前学过一点 Python 基础,打算用 Flask 框架实现,请看下边

一、准备

PyCharm 编译工具

Mysql 数据库

Flask 框架和 SQLAlchemy 库

百度自行安装 Flask 框架和 SQLAlchemy 库

来看数据库:

上代码:

config.py:  配置连接信息dbhost = '127.0.0.1:3306'

dbuser = 'root'

dbpass ='queyiqin'

dbname= 'takeout_db'

DB_URI ='mysql+pymysql://'+dbuser+':'+dbpass+'@'+dbhost+'/'+dbname

SQLALCHEMY_DATABASE_URI = DB_URI

新建 myapp 包

在同一个 myapp 包下

init.py

view.py

model.py

dadabase.py

init.py:from flask import Flask

from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.secret_key=os.urandom(24) # 设置秘钥防止报错

app.config.from_object('config') #导入配置信息

db = SQLAlchemy(app)  # 顺序要注意

from myapp import view, model# 顺序要注意 下边的

model.py:class User(db.Model):

__tablename__ = 'user' #数据库的表名

id = db.Column(db.Integer, primary_key=True)

username = db.Column(db.String(50), unique=True)

password = db.Column(db.String(50))

phone = db.Column(db.String(50), unique=True)

address = db.Column(db.String(50))

role = db.Column(db.String(50))

def __init__(self, username, password, phone,address,role):

self.username = username

self.password = password

self.phone = phone

self.address = address

self.role = role

def __repr__(self):

return '' % self.user_name

database: 数据库连接from sqlalchemy import create_engine

from sqlalchemy.orm import scoped_session, sessionmaker

from sqlalchemy.ext.declarative import declarative_base

from config import SQLALCHEMY_DATABASE_URI #导入config.py配置信息

# 用来初始化数据库连接

engine = create_engine(SQLALCHEMY_DATABASE_URI, convert_unicode=True)

# 获取连接对象

db_session = scoped_session(sessionmaker(autocommit=False,

autoflush=False,

bind=engine))

#获取对象

Base = declarative_base()

Base.query = db_session.query_property()

def init_db():

#连接

Base.metadata.create_all(bind=engine)

view.py:

这里说明一下 Flask 框架用的是路由,重点是装饰器!

@app.route('/api/login',methods=['POST','GET'])

def login():

try:

phone = request.args.get('phone')

password = request.args.get('password')

user = User.query.filter_by(phone=phone).first()

if user == None:

return formattingData(code=-1,msg='Not account!',data=[])

if user.password == password:

return formattingData(200,msg='Login success.',data={

"id": user.id,

"username": user.username,

"phone": user.phone

})

else:

return formattingData(code=-1,msg='Incorrect password.',data=[])

except KeyError:

return formattingData(code=-1,msg='Sorry,login failed.',data=[])

# 这个方法用于json格式返回

def formattingData(code,msg,data):

return jsonify(

{

"code": code,

"msg" : msg,

"data": data

}

)

接下来运行

test.py:

from myapp  import app

if __name__ == '__main__':

app.run(debug=True,host='0.0.0.0',port=5000)

可在浏览器输入 127.0.0.1:5000/api/login?phone=18078151341&password=queyiqin成功返回数据。

python调用android的接口_Python写Android接口一步到位相关推荐

  1. python调用系统声音报警_python写报警程序中的声音实现winsound

    写windowns下的报警程序,有一个报警声音的实现,在python中有个winsound模块可以来实现,方法也很简单:import time import winsound def play_mus ...

  2. python编写web接口_Python写web接口

    前言 最近在看有关python的一些知识.是关于深度学习的东西,但是很不明白,因为自己的数学功底太差.之前总是想搞一些关于算法的东西,又不会,这就想起来了大二实训老师的话.这个老师挺好,和我聊了两堂课 ...

  3. python通达信接口_python通达信接口-通达信 量化交易。

    Python 里没有接口,如何写设计模式? 我曾经实现过web测试的自动化库,主要说一下模拟浏览器部分:对于ie,mshtml组件. 好自动化而且收益可观+ Python是一种动态类型语言,拥有duc ...

  4. python登录注册接口_Python实现登录接口

    要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:usern ...

  5. android powermock,使用PowerMock写Android单元测试

    [TOC] 为什么用PowerMock 在写Android单测的时候,大家多为这几件事苦恼: 与Android API进行的交互,如何隔绝? 如何对private method/field进行mock ...

  6. python调用c++动态库_Python调用C/C++动态链接库的方法

    本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: //hello.h #ifdef E ...

  7. python调用c的配置文件_python调用c

    python一个非常的大的优点就是开发效率高,非常不好的缺点就是执行效率低:然而c语言有个则刚好相反.还有一点python的对源码的保护做不到,即使你用py2exe,pyinstaller这样的方法也 ...

  8. python调用c++动态库_Python应用:调用C/C++动态链接库的方法详解

    Linux系统下调用动态库(.so) 1.linuxany.c代码如下: #include "stdio.h" void display(char* msg){ printf(&q ...

  9. python调用opencv处理视频_Python调用OpenCV读写视频

    最近因为经常对视频进行操作,所以记录下Python用opencv来读写视频的方法. 一.opencv读视频 python调用opencv来读视频比较简单,可以直接调用cv2.VideoCapture来 ...

最新文章

  1. selenium选中某个控件敲击键盘
  2. html 用svg缩放拉伸,html – 拉伸SVG以适应其父级的100%高度和宽度
  3. 配置Redis主从复制
  4. JavaScript验证表单大全【自用】
  5. 神经网络常见问题和技巧(持续更新)
  6. Matlab中imhist函数的使用及图像直方图的概念
  7. xci转nsp工具_再谈xci、nsz、nsp
  8. Android屏幕尺寸详解
  9. SpringBoot非官方教程 | 第二十五篇:2小时学会springboot
  10. 华为鸿蒙16号开发大会,刚刚!华为2019年开发者大会,鸿蒙系统正式雄起
  11. blos硬盘启动台式计算机,惠普台式机bios设置硬盘启动操作步骤
  12. suse linux 光盘安装教程,suse11一键安装光盘制作
  13. fabs linux头文件,C/C++ algorithm头文件的max()、min()、abs()和math头文件的fabs(
  14. 开关为什么要过零检测?内附带代码
  15. 论文笔记--Self-Supervised Learning of 3D Human Pose using Multi-view Geometry(利用多视角几何学对三维人类姿势进行自我监督学习)
  16. 某国企 测试工程师 面试记录 2021-11-04
  17. 1(基于SpringBoot)疫情下的在线办公签到系统-从零构建后端项目基础篇
  18. 在有序数组中,寻找指定连续数字的起始下标和结束下标
  19. 关于PTR的说明【转】
  20. 一号店项目 完整版 代码自取

热门文章

  1. Opencv4.x深度学习之Tensorflow2.3框架训练模型
  2. RHEL-Linux安全加固与基础优化(一)
  3. Wind River Workbench 3.2安装及授权问题解决
  4. 浮点数相加求和c语言,C语言 从键盘输入8个浮点数,编程求出其和以及平均值,要求写出求和以及平均值的函数...
  5. 用计算机算出90除以6.28,三年级下册数学测试题(全套)电子教案(28页)-原创力文档...
  6. jquery trigger()用法
  7. 深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)
  8. WindowsMediaPlayer 11 控件详解
  9. Android studio校园通 社区活动 新闻 组织结构 日历
  10. django连接mysql出现MySQLdb._exceptions.OperationalError