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