• 标准的Flask启动文件


    最近有一些同学问了我一些项目结构的问题 所以今天给大家专门讲解 解耦后的项目 目录我会分为两种方式:一种是普通解耦 一种是多mvc解耦

    首先 我没先建立我们程序的文件夹并且在这个文件夹内写一个和这个文件夹一样的文件夹 然后再建立启动主文件manage.py

    然后在内部的和主文件夹一样的文件夹内再建立一个__init__.py文件这个文件是你的生成app和app调用的所有主内容

    __init__.py

    from flask import Flask
    from config import set1 # 导入配置文件
    
    def create_app():
        app = Flask(__name__)
    
        # 导入配置文件
        app.config.from_object("config.set1") #接收配置配置文件
        app.logger.error(set1.dict)
    
        #导入蓝图
        from biaozhun.views.comment import ac
        from biaozhun.views.user import user
        app.register_blueprint(ac)
        app.register_blueprint(user)
    
        return app

    然后在你的manage.py文件内是你的启动文件

    manage.py

    from biaozhun import create_app
    
    app =create_app()
    
    if __name__ == "__main__":
        app.run("127.0.0.1",9980,debug = True)

    其中的内部文件夹的目录是templates必须是这个名字这个存放的是你的前端界面

    我们把每一个模块都放在蓝图中去实现 这个时候就用到了views,然后我没把路由分配也交给了蓝图去实现

     这个里面的views的user和comment也是蓝图 

    user.py

    from flask import Blueprint,render_template
    
    user = Blueprint("user",__name__) #生成蓝图对象
    
    @user.route("/user_list") #使用蓝图对象来分发路由
    def show_user():
        return render_template("user_list.html")

    comment.py

    from flask import Blueprint
    from config import set1 # 导入配置文件
    
    ac = Blueprint("account",__name__)
    
    @ac.route("/login")
    
    def login():
        return "登陆%s"%str(set1.dict)

    然后我没的config是我没的配置文件有的人也喜欢叫settings都可以的

    配置文件就和以前的使用是一样的了

    还有另一种的存放:

    Flask做项目文件的时候也是需要注意很多的

    在启动文文件的时候我没可以直接启动也可以通过命令,这个时候就需要用到一个第三方的工具包,flask_script

    我没可以把实例化的app封装到flask_script中的manage中 然后 通过这个来制定启动server

    application.py文件

    from flask import Flask
    from flask_script import Manager  #导入manage
    from flask_sqlalchemy import SQLAlchemy
    
    import os
    
    class Application(Flask):
    
        def __init__(self,import_name):
            super(Application,self).__init__(import_name)
            self.config.from_pyfile('config/base_setting.py')#导入配置文件
    
            if  "ops_config" in os.environ:  # os.environ是找到你的配置文夹中对应的配置文件
                self.config.from_pyfile("config/%s_setting.py"%os.environ['ops_config'])
    
            db.init_app(self)
    
    db = SQLAlchemy()
    
    app = Application(__name__)
    
    manage = Manager(app)  #把app进行封装
     

    manage.py文件

    from application import app,manage
    from flask_script import Server #自定义启动服务命令 linux通过这个自定义  但是修改完成后就要要手动运行 python manage.py  runserver才可以执行文件
    import www
    manage.add_command("runserver",Server(host = "127.0.0.1",port = 9980,use_debugger=True))  #指定启动的服务和端口
    
    
    def main():
        # app.run("127.0.0.1",9980,debug=True)
        manage.run() 
    
    if __name__ == "__main__":
        try:
            import sys
            sys.exit(main())
        except Exception as e:
            import traceback #通过traceback可以把所有的错误的信息给打印出来
    
            traceback.print_exc()
    自定义启动服务命令 linux通过这个自定义  但是修改完成后就要要手动运行 python manage.py  runserver才可以执行文件
    如果把app封装到manage中之后再启动服务就需要执行
    python manage.py runserver
  • 相关阅读:
    IO流
    java的反射机制
    docker下安装mysql
    makefile
    python轻量级orm
    MySQLdb与sqlalchemy的简单封装
    python网络socket编程
    解决mysqldb查询大量数据导致内存使用过高的问题
    sqlalchemy根据数据库结构生成映射的实体
    centos7构建python2.7常用开发环境
  • 原文地址:https://www.cnblogs.com/zhaoyunlong/p/10037610.html
Copyright © 2020-2023  润新知