我最近想自己写安卓的界面,以前学过一点Python的基础,想在Flask框架上实现。 请看下面
一、准备
PyCharm编译工具
Mysql数据库
Flask框架和SQLAlchemy库
百度将自行安装Flask框架和SQLAlchemy库
要查看数据库:
上传代码:
config.py:配置连接信息dbhost='127.0.0.133603306 '
dbuser='root '
dbpass='queyiqin '
dbname='takeout_db '
db _ uri=' mysqlpymysql ://' dbuser ' : ' dbpass ' @ ' dbhost '/' dbname
SQLALCHEMY_DATABASE_URI=DB_URI
新的myapp软件包
在同一个myapp包下
init.py
view.py
model.py
dadabase.py
init.py : fromflaskimportflask
from flask _ sqlalchemyimportsqlalchemy
APP=flask(_name__ )
App.secret_key=OS.urandom(24 ) #设置私钥以防止错误
App.config.from_object(config ) #导入配置信息
注意db=sqlalchemy(app ) #的顺序
from myapp导入视图,模型#的顺序如下
model.py :类用户(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=username
self.password=password
self.phone=phone
self.address=address
self.role=role
def __repr__(self ) :
return '' % self.user_name
数据库:数据库连接fromsqlalchemyimportcreate _ engine
from sqlalchemy.ormimportscoped _ session,sessionmaker
from sqlalchemy.ext.declarativeimportdeclarative _ base
导入fromconfigimportsqlalchemy _ database _ uri # config.py配置信息
#为了初始化数据库连接
engine=create _ engine (sqlalchemy _ database _ uri,convert_unicode=True ) ) ) ) ) ) )。
#获取连接目标
db _ session=scoped _ session (session maker ) autocommit=false,
autoflush=False,
bind=engine )
#获取对象
Base=declarative_base (
base.query=db _ session.query _ property (
definit_db(:
#连接
base.metadata.create _ all (bind=engine ) )。
view.py:
这里说明Flask框架正在使用路由。 重点是装饰器!
@app.route(/API/login ),methods=['POST ',' get ' ] ]
deflogin(: )
try:
phone=request.args.get('phone ) ) ) ) )。
password=request.args.get (password ) )。
(user=user.query.filter _ by (phone=phone ).first () ) ) ) ) ) )。
if user==None:
returnformattingdata(code=-1,msg='Not account!' ,数据=[ ] )
if user.password==password:
returnformattingdata(200,msg='Login success.',data={
' id': user.id,
' username': user.username,
' phone': user.phone
() )
else:
returnformattingdata (代码=-1,msg='Incorrect password.',data=[] )
Except密钥错误:
returnformattingdata(code=-1,msg='Sorry,login failed.',data=[] )
#此方法用于以json格式返回
efformattingdata (代码、msg、数据) :
返回JSON ify (
{
代码' :代码,
' msg' : msg,
'数据' :数据
}
)
接下来开车
test.py:
来自myapp导入应用程序
if __name__=='__main__':
app.run (调试=true,主机='0.0.0.0',端口=5000 ) )。
是否可以在浏览器中输入127.0.0.1:5000/api/login? phone=18078151341 password=queyiqin成功返回了数据。