def test_api_decorators(client, flask_app): global AUTHENTICATED api = Api(flask_app, request_decorators=[auth_required]) api.add_model(Company) assert client.get('/company').status_code == 403 assert client.post('/company', data={'name': 'Terran'}, headers={'auth': True}).status_code == 201 assert client.get('/company', headers={'auth': True}).status_code == 200
def test_resource_decorators(client, flask_app): api = Api(flask_app) api.add_model(Company) api.add_model(Address, request_decorators=[auth_required]) assert client.get('/address').status_code == 403 assert client.post('/address', data={'steet': '5 Av'}).status_code == 403 assert client.get('/company', data={'name': 'Terran'}).status_code == 200 assert client.post('/company', data={'name': 'Terran'}).status_code == 201 assert client.post('/address', data={'id': 2, 'street': '5 Av'}, headers={'auth': True}).status_code == 201 assert client.post('/company', data={'name': 'Terran'}, headers={'auth': True}).status_code == 201 assert client.get('/address/2').status_code == 403 assert client.get('/address/2', headers={'auth': True}).status_code == 200
def init_test_data(flask_app, db_session): for name, location in CLIENTS: company = Company(name=name, location=location) db_session.add(company) address = Address(street="5th Av.") emp1 = Employee(firstname="John", lastname="Doe", address=address) db_session.add(address) db_session.add(emp1) db_session.commit() api = Api(flask_app) api.add_model(Company) api.add_model(Employee, serializer_class=EmployeeSerializer) api.add_relation(Company.employees, serializer_class=EmployeeSerializer) return api
def test_api_decorators(client, flask_app): api = Api(flask_app, request_decorators=[auth_required]) api.add_model(Company) api.add_model(Address, request_decorators=[post_hook]) assert client.get("/company").status_code == 403 assert (client.post("/company", data={ "name": "Terran" }, headers={ "auth": True }).status_code == 201) assert client.get("/company", headers={"auth": True}).status_code == 200 response = client.post("/address", headers={"auth": True})
def test_resource_decorators(client, flask_app): api = Api(flask_app) api.add_model(Company, request_decorators=[auth_required]) api.add_model(Address) assert client.get("/company").status_code == 403 assert client.post("/company", data={"name": "Terran"}).status_code == 403 assert client.get("/address").status_code == 200 assert client.post("/address", data={"street": "5 Av"}).status_code == 201 resp = client.post("/company", data={ "id": 2, "name": "Protoss" }, headers={"auth": True}) assert resp.status_code == 201 assert client.get("/company/2").status_code == 403 assert client.get("/company/2", headers={"auth": True}).status_code == 200
def sample_api(flask_app): api = Api(flask_app) api.add_model(Company) api.add_model(Company, view_name="alt_company") api.add_model(Employee, serializer_class=EmployeeSerializer)
from flask import Flask from flask_restalchemy import Api from flask_sqlalchemy import SQLAlchemy from sqlalchemy import Column, String, Integer app = Flask('tour-of-heroes') db = SQLAlchemy() class Heroe(db.Model): id = Column(Integer, primary_key=True) name = Column(String) # Set an SQLite in-memory database app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///:memory:' db.init_app(app) # Must be called before Api object creation api = Api(app) api.add_model(Heroe, '/heroes') @app.route('/create_db', methods=['POST']) def create_db(): db.create_all() # Remove this in production code return 'DB created' if __name__ == '__main__': app.run()
username = db.Column(db.String(80), unique=True, nullable=False) email = db.Column(db.String(120), unique=True, nullable=False) class UserView(ModelView): can_delete = True # disable model deletion app = Flask("tour-of-heroes") app.secret_key = 'super secret key' app.config['FLASK_ADMIN_SWATCH'] = 'cerulean' app.config[ 'SQLALCHEMY_DATABASE_URI'] = 'mysql://*****:*****@#@47.104.80.155/javaweb' db.init_app(app) # Must be called before Api object creation @app.route("/create_db", methods=["GET"]) def create_db(): db.create_all() return "DB created" api = Api(app) api.add_model(User, "/users") admin = Admin(app, name='统一后台管理模板', template_mode='bootstrap3') admin.add_view(UserView(User, db.session)) if __name__ == "__main__": app.run()
from flask import Flask from flask_restalchemy import Api from declarative import db from model.acordo_leniencia import AcordoLeniencia from model.empresa import Empresa from serializer.acordo_leniencia import AcordoLenienciaSerializer app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = os.environ.get('DATABASE_URL', 'sqlite:///:memory:') db.init_app(app) api = Api(app) api.add_model(Empresa) api.add_model(AcordoLeniencia, serializer_class=AcordoLenienciaSerializer) api.add_relation(Empresa.acordoLeniencia, serializer_class=AcordoLenienciaSerializer) @app.route("/") def hello(): return u'Olá mundo!' @app.route("/init_db") def create_db(): db.drop_all() db.create_all() return 'Banco iniciado'
# 第一次运行需要执行这个 localhost:5000/create_db 创建所有的表 @app.route("/create_db", methods=["GET"]) def create_db(): db.create_all() return "DB created" @app.route('/addusers', methods=['GET']) def add_users(): for i in range(10000, 20000): u = User(username='******' % i, email='*****@*****.**' % i) db.session.add(u) db.session.commit() pass # RestAPI 配置部分 api = Api(app) api.add_model(User, "/users") api.add_model(Job, "/jobs") # 后台管理部分 admin = Admin(app, name='统一后台管理模板', template_mode='bootstrap3') admin.add_view(UserView(User, db.session)) admin.add_view(JobView(Job, db.session)) if __name__ == "__main__": app.run()
from sqlalchemy import Column, String, Integer db = SQLAlchemy() class Hero(db.Model): id = Column(Integer, primary_key=True) name = Column(String) secret_name = Column(String) app = Flask("tour-of-heroes") @app.route("/create_db", methods=["POST"]) def create_db(): db.create_all() return "DB created" # Set an SQLite in-memory database app.config["SQLALCHEMY_DATABASE_URI"] = "sqlite:///:memory:" db.init_app(app) # Must be called before Api object creation api = Api(app) api.add_model(Hero, "/heroes") if __name__ == "__main__": app.run()
def sample_api(flask_app): api = Api(flask_app) api.add_model(Employee) return api