python调用android的接口_Python写Android接口一步到位
最近想自己写 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接口一步到位相关推荐
- python调用系统声音报警_python写报警程序中的声音实现winsound
写windowns下的报警程序,有一个报警声音的实现,在python中有个winsound模块可以来实现,方法也很简单:import time import winsound def play_mus ...
- python编写web接口_Python写web接口
前言 最近在看有关python的一些知识.是关于深度学习的东西,但是很不明白,因为自己的数学功底太差.之前总是想搞一些关于算法的东西,又不会,这就想起来了大二实训老师的话.这个老师挺好,和我聊了两堂课 ...
- python通达信接口_python通达信接口-通达信 量化交易。
Python 里没有接口,如何写设计模式? 我曾经实现过web测试的自动化库,主要说一下模拟浏览器部分:对于ie,mshtml组件. 好自动化而且收益可观+ Python是一种动态类型语言,拥有duc ...
- python登录注册接口_Python实现登录接口
要求: 输入用户名和密码 认证成功,显示欢迎信息 用户名3次输入错误后,退出程序 密码3次输入错误后,锁定用户名 Readme: UserList.txt 是存放用户名和密码的文件,格式为:usern ...
- android powermock,使用PowerMock写Android单元测试
[TOC] 为什么用PowerMock 在写Android单测的时候,大家多为这几件事苦恼: 与Android API进行的交互,如何隔绝? 如何对private method/field进行mock ...
- python调用c++动态库_Python调用C/C++动态链接库的方法
本文以实例讲解了Python调用C/C++ DLL动态链接库的方法,具体示例如下: 示例一: 首先,在创建一个DLL工程(本例创建环境为VS 2005),头文件: //hello.h #ifdef E ...
- python调用c的配置文件_python调用c
python一个非常的大的优点就是开发效率高,非常不好的缺点就是执行效率低:然而c语言有个则刚好相反.还有一点python的对源码的保护做不到,即使你用py2exe,pyinstaller这样的方法也 ...
- python调用c++动态库_Python应用:调用C/C++动态链接库的方法详解
Linux系统下调用动态库(.so) 1.linuxany.c代码如下: #include "stdio.h" void display(char* msg){ printf(&q ...
- python调用opencv处理视频_Python调用OpenCV读写视频
最近因为经常对视频进行操作,所以记录下Python用opencv来读写视频的方法. 一.opencv读视频 python调用opencv来读视频比较简单,可以直接调用cv2.VideoCapture来 ...
最新文章
- selenium选中某个控件敲击键盘
- html 用svg缩放拉伸,html – 拉伸SVG以适应其父级的100%高度和宽度
- 配置Redis主从复制
- JavaScript验证表单大全【自用】
- 神经网络常见问题和技巧(持续更新)
- Matlab中imhist函数的使用及图像直方图的概念
- xci转nsp工具_再谈xci、nsz、nsp
- Android屏幕尺寸详解
- SpringBoot非官方教程 | 第二十五篇:2小时学会springboot
- 华为鸿蒙16号开发大会,刚刚!华为2019年开发者大会,鸿蒙系统正式雄起
- blos硬盘启动台式计算机,惠普台式机bios设置硬盘启动操作步骤
- suse linux 光盘安装教程,suse11一键安装光盘制作
- fabs linux头文件,C/C++ algorithm头文件的max()、min()、abs()和math头文件的fabs(
- 开关为什么要过零检测?内附带代码
- 论文笔记--Self-Supervised Learning of 3D Human Pose using Multi-view Geometry(利用多视角几何学对三维人类姿势进行自我监督学习)
- 某国企 测试工程师 面试记录 2021-11-04
- 1(基于SpringBoot)疫情下的在线办公签到系统-从零构建后端项目基础篇
- 在有序数组中,寻找指定连续数字的起始下标和结束下标
- 关于PTR的说明【转】
- 一号店项目 完整版 代码自取
热门文章
- Opencv4.x深度学习之Tensorflow2.3框架训练模型
- RHEL-Linux安全加固与基础优化(一)
- Wind River Workbench 3.2安装及授权问题解决
- 浮点数相加求和c语言,C语言 从键盘输入8个浮点数,编程求出其和以及平均值,要求写出求和以及平均值的函数...
- 用计算机算出90除以6.28,三年级下册数学测试题(全套)电子教案(28页)-原创力文档...
- jquery trigger()用法
- 深究并行编程Parallel类中的三大方法 (For、ForEach、Invoke)和几大编程模型(SPM、APM、EAP、TAP)
- WindowsMediaPlayer 11 控件详解
- Android studio校园通 社区活动 新闻 组织结构 日历
- django连接mysql出现MySQLdb._exceptions.OperationalError