flask 将route放置在多个文件中的方法(蓝本)

1 直接导入,文件结构如下
在这里插入图片描述
init.py

from flask import Flask
from ellisTest.config import config

from flask_marshmallow import Marshmallow
from flask_sqlalchemy import  SQLAlchemy


app = Flask('ellisTest')

app.config.from_object(config)
db=SQLAlchemy(app)
ma=Marshmallow(app)
from testv import *
# app.register_blueprint(simple)
@app.route('/h')
def yy():
    return "666"

app.run(debug=True)

testMa

import testModel
from ellisTest import ma
class testma(ma.ModelSchema):
    class Meta:
        model=testModel.test

testModel

from ellisTest import db
class test(db.Model):
    id=db.Column(db.Float(),primary_key=True)
    name=db.Column(db.String())
    age=db.Column(db.Float())

testv

from ellisTest import db
from ellisTest import app
from testModel import test
from testMa import testma
from flask import request
from flask import Blueprint

# simple = Blueprint('simple',__name__,template_folder='templates')

# @simple.route('/test',methods=['POST'])
@app.route('/test',methods=['POST'])
def test1():
    tt=testma()
    tests=tt.load(request.get_json(force=True))
    print(tests)
    db.session.add(tests)
    db.session.commit()
    return 'success'


# @simple.route('/hh',methods=['GET'])
@app.route('/hh',methods=['GET'])
def testq():
    tt = testma(many=True)
    ttt=test.query.all()
    print(ttt)
    tests=tt.dumps(ttt)
    return tests


config

DIALECT = 'postgresql'
DRIVER = 'psycopg2'
USERNAME = 'chenxu'
PASSWORD = 'postgres'
HOST = '127.0.0.1'
PORT = '5432'
DATABASE = 'chenxu'
SQLALCHEMY_TRACK_MODIFICATIONS=True
FLASK_DEBUG=1
SQLALCHEMY_DATABASE_URI = "{}://{}:{}@{}:{}/{}".format(DIALECT,USERNAME, PASSWORD, HOST, PORT,DATABASE)

2 蓝本方式与直接使用app.route类似,先声明一个Blueprint,第一个参数是蓝本的名称,第二个是APP的名称,注册路由后,将Blueprint注册到app就行
于第一种方式唯一的区别就是__init__.py以及testv.py,其他一致
init_.py

from flask import Flask
from ellisTest.config import config

from flask_marshmallow import Marshmallow
from flask_sqlalchemy import  SQLAlchemy


app = Flask('ellisTest')

app.config.from_object(config)
db=SQLAlchemy(app)
ma=Marshmallow(app)
#from testv import *
from ellisTest.testv import simple
app.register_blueprint(simple)
@app.route('/h')
def yy():
    return "666"

app.run(debug=True)

testv.py

from ellisTest import db
from ellisTest import app
from testModel import test
from testMa import testma
from flask import request
from flask import Blueprint

simple = Blueprint('simple',__name__,template_folder='templates')

@simple.route('/test',methods=['POST'])
# @app.route('/test',methods=['POST'])
def test1():
    tt=testma()
    tests=tt.load(request.get_json(force=True))
    print(tests)
    db.session.add(tests)
    db.session.commit()
    return 'success'


@simple.route('/hh',methods=['GET'])
# @app.route('/hh',methods=['GET'])
def testq():
    tt = testma(many=True)
    ttt=test.query.all()
    print(ttt)
    tests=tt.dumps(ttt)
    return tests


  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值