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 '<User %s>' % 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成功返回数据。

如有疑问请关注我的公众号,为您解答!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值