zoukankan      html  css  js  c++  java
  • 04flask_scripts使用

    1,flask_script作用

    flask_script的作用是可以通过命令行的实行来操作Flask,例如通过命令跑一个开发版本的服务器,设置数据库,定时任务等,

    我们把脚本命令代码放在一个叫做manage.py的文件中,然后运行python manage.py hello命令就可以输出print后的内容了。
    这里实际上用print模拟我们的操作,具体操作会替换print的内容。

    2,安装flask_scripts

    要使用flask_script,可以通过pip install flask_script安装最新版本。直接在pycharm安装或者使用wheel安装。

    3,具体操作

    主要的点和Django一样,这里新建一个manage.py文件,里面集成这些服务器功能,具体过程如下:。

    #flask_script_demo.py

    from
    flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run()
    #manage.py
    from
    flask_script import Manager from flask_script_demo import app #从上面的文件中引入app from db_scripts import DBManager #db_scripts专门写数据库相关的文件的。
    manager = Manager(app) 
    @manager.command
    def runserver():
      print(
    "服务器跑起来了!!") # “runserver”直接就写在manage.py文件中,所以在cmd命令中使用“python manage.py runserver”
    # 和数据库相关的操作都放在一起
    manager.add_command(
    'db',DBManager)
    # db是命令前缀,作用:区别于“runserver”直接写在manage.py文件中,这个是写在专门给数据库的文件里的,
    # 前面加上“db”是便于在cmd命令中使用“python manage.py db init”,注意这个“db”,他相当于子命令
    if __name__ == '__main__':
      manager.run()
    #db_scripts.py
    from
    flask_script import Manager DBManager = Manager() # 这里括号里不用加“app”,因为这里不是主文件 @DBManager.command def init(): print("数据库初始化完成!") @DBManager.command def migrate(): print("数据表迁移成功!")

    4,注意点

    这里使用的是虚拟环境,我们运行服务器不是在pycharm里,而是在cmd里,我们进入如下文件夹(该项目根目录):

    然后在框中cmd,执行下图,命名为“”python manage.py  runserver”,注意这是直接写在manage.py里的函数:

    我们再写manage.py调用“db_scripts.py”的文件:

    效果如图:

    =================================================================================================

    下面我们具体讲讲“manager.add_command('db',DBManager)”的用法: 

    这里为什么加了个“db”?

    可以看到manage.py中有这么一句:

    @manager.command 
    def runserver(): 
      print("服务器跑起来了!!")
    

      这是直接存在于manage.py中的一句话,但是对于被导入到manage.py文件中的“init”和migrate而言,不能直接通过“python manage.py init”来直接运行服务器

    #db_scripts.py
    from flask_script import Manager
    
    DBManager = Manager()
    # 这里括号里不用加“app”,因为这里不是主文件
    
    @DBManager.command
    def init():
        print("数据库初始化完成!")
    @DBManager.command
    def migrate():
        print("数据表迁移成功!")
    

     这里的原因就是为了区别被导入文件与本身就有的文件的区别,正确的服务器运行代码应该为:python manage.py prex init

  • 相关阅读:
    MATLAB 简单多边形的核
    MATLAB Moravec算子
    MATLAB Sepia Tone滤镜
    MATLAB 异或分类
    MATLAB 神经网络分类
    MATLAB 地图上画经纬度
    MATLAB 最小二乘多项式拟合
    MATLAB 对应点集配准的四元数法
    MATLAB 高斯牛顿法最优化
    MATLAB Levenberg-Marquardt法最优化
  • 原文地址:https://www.cnblogs.com/two-peanuts/p/10726640.html
Copyright © 2011-2022 走看看