flask-restful入门到进阶(一)之目录结构

一、项目立项,目录结构

                    1、入口main.py  2、配置文件    3、应用

 二、流程

  • api/__inin__.py。创建蓝图对象,添加路由
  • # -*- coding: utf-8 -*-
    from flask import Blueprint
    from apps.apis.user_api import UserResource
    from flask_restful import Api
    
    User = Blueprint("user", __name__)
    user = Api(User)
    
    user.add_resource(UserResource, "/user/")

     

  • apps/__init__.py  create_app    并且注册蓝图
  • # -*- coding: utf-8 -*-
    from flask import Flask
    from apps.apis import User
    from settings import DevelopConfig, TestConfig
    from flask_sqlalchemy import SQLAlchemy
    from flask_restful import Api
    api = Api()
    db = SQLAlchemy()
    
    
    def create_app():
        app = Flask(__name__)
        app.config.from_object(TestConfig)
        db.init_app(app=app)
        api.init_app(app=app)
    
        # 注册lantu
        app.register_blueprint(User)
    
        return app

     

  • main.py

# -*- coding: utf-8 -*-

from flask_script import Manager, Shell, Server
from flask_migrate import Migrate, MigrateCommand
from apps import create_app, db

app = create_app()
# manager = Manager(app)
# migrate = Migrate(app, db)

# def make_shell_context():
#     return dict(app, db)

# manager.add_command("shell", Shell(make_context=make_shell_context))
# manager.add_command("db", MigrateCommand)
# manager.add_command("runserver", Server(host="0.0.0.0", port=3000))


if __name__ == '__main__':
    app.run(port=3000)
    # manager.run()

 

  •  settings
  • # -*- coding: utf-8 -*-
    
    import os
    
    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    
    def get_db_uri(dbinfo):
        engine = dbinfo.get("ENGINE") or "sqlite"
        driver = dbinfo.get("DRIVER") or "sqlite"
        user = dbinfo.get("USER") or ""
        password = dbinfo.get("PASSWORD") or ""
        host = dbinfo.get("HOST") or ""
        port = dbinfo.get("PORT") or ""
        name = dbinfo.get("NAME") or ""
        return '{}+{}://{}:{}@{}:{}/{}'.format(engine, driver, user, password, host, port, name)
    
    class Config:
        DEBUG = True
        SQLALCHEMY_TRACK_MODIFICATIONS = True
        SQLALCHEMY_ECHO = True
        SQLALCHEMY_DATABASE_URI = "mysql://%s:%s@%s/%s" % ('root', '520', '172.20.61.141', 'test')
        SECRET_KEY = "SKJDJSHDFIUSHEFIUSHFIUDSHI"
    
    
    
    class DevelopConfig(Config):
        DEBUG = True
        dbinfo = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "nice.tv520",
            "HOST": "172.20.61.141",
            "PORT": "3306",
            "NAME": "test",
    
        }
        SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
    
    
    class TestConfig(Config):
        TESTING = True
        dbinfo = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "nice.tv520",
            "HOST": "172.20.61.141",
            "PORT": "3306",
            "NAME": "test",
    
        }
        SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
    
    
    class StagingConfig(Config):
        dbinfo = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "",
            "HOST": "localhost",
            "PORT": "3306",
            "NAME": "flask",
    
        }
        # SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
    
    
    class ProductConfig(Config):
        dbinfo = {
            "ENGINE": "mysql",
            "DRIVER": "pymysql",
            "USER": "root",
            "PASSWORD": "",
            "HOST": "localhost",
            "PORT": "3306",
            "NAME": "flask",
    
        }
        # SQLALCHEMY_DATABASE_URI = get_db_uri(dbinfo)
    
    
    envs = {
        'develop': DevelopConfig,
        'testing': TestConfig,
        'stage': StagingConfig,
        'product': ProductConfig,
        'default': DevelopConfig,
    }
    

     

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值