zoukankan      html  css  js  c++  java
  • flask+script命令行交互工具

    Project name :Flask_Plan

    templates:templates

    static:static

    首先说,我们flask比django方便的地方是所有的模块都可以自己选,你不喜欢sqlalchemy这个orm,你可以换一个,别问我,我也不会,学的就是sqlalchemy。

    django提供了一个数据库设升级工具migrate,我们也需要啊,否则后期增加功能,数据库就头痛死。

    好吧,我们也给flask加上这样的功能。

    恐怕还是老实用sqlalchemy吧,flask_sqlalchemy少了一些数据库的高级功能,比如说or_

    sqlalchemy和flask_sqlalchemy能否混用,还不清楚。先用sqlalchemy吧。原版的。

    我不准备再写sqlalchemy的文章了。

    直接写flask_sqlalchemy吧,同时配合flask_migrate,配合flask_script

    安装也很简单。

    创建Flask_Plan/manage.py

    from flask_script import Manager
    from Flask_Plan import app
    
    manager = Manager(app)
    @manager.command
    def runserver():
        print('hello')
    
    if __name__ == '__main__':
        manager.run()

    直接运行这个文件

    usage: managy.py [-?] {runserver,shell} ...

    提示到了你需要使用 managy.py runserver 来运行。

    那么我们就在该目录下 运行 

    python managy.py runserver

    会输出我们的hello

    我是用的虚拟环境的python

    命令如下图

    但是我们用的是pycharm,还老进这命令行干吗?

    参考以下配置:

    File--Settings--tools--External Tools

    用右边的加号自己创建一个新的。

    Name是你会在菜单里看到的。

    Program:是python的位置,这个是我的虚拟环境中python的位置。

    Parameters:就是可选的命令参数了。

    高级用法:如果命令多了,怎么写?都写这一个文件,找起来累死了。

    把一类命令放进一个script文件

    创建Flask_Plan/db_script.py

    from flask_script import Manager
    
    DBmanager = Manager()
    
    @DBmanager.command
    def init():
        print('数据库初始化')
    
    @DBmanager.command
    def migrate():
        print('数据库比较')
        
    @DBmanager.command
    def update():
        print('数据库升级')

    编辑Flask_Plan/manage.py

    from flask_script import Manager  #引入script的manager
    from Flask_Plan import app        #引入启动文件的app(实例化的FLASK)
    from db_script import DBmanager   #引入DB类的命令文件
    
    manager = Manager(app)             #实例化manager
    @manager.command                   #用装饰器表明下面的函数是个manager命令
    def runserver():                   #函数名称就是manager命令的参数
        print('hello')
    
    manager.add_command('db',DBmanager)  #把引入的DB命令,加入manager中
    
    if __name__ == '__main__':
        manager.run()

    引入了DB类的命令文件

    把命令都加入了manager

    直接运行一下managy.py

    提示信息:

    usage: managy.py [-?] {runserver,db,shell} ...
    
    positional arguments:
      {runserver,-db,shell}
        runserver
        -db   

    看到提示-db了么?这就是我们把命令加入manager时候用的前缀,开始有点像dos命令了。

    运行命令是这样的:

    貌似我们已经实现了django中

    makemigrations

    migrate

    两个命令。

    配置进pycharm

    File--Settings--tools--External Tools

    后面讲migrate的时候会用到。

  • 相关阅读:
    Java学习笔记-Java中的常用类
    Java学习笔记-Java中的常用类
    Java学习笔记-泛型
    GeoIP简介与资源,定位经纬度,获取用户IP
    【插代码】手机号码所在地查询,引用代码
    最后一个对象属性后边不要加豆号的bug,血淋淋的教训啊,模块化开发IE7下的严重错误,养成好习惯
    CSS自定义滚动条样式
    css实现input文本框的双边框美化
    在函数内部定义的变量加与不加var的区别,匿名函数和有名函数内声明变量的区别
    js定时器关闭,js定时器停止,一次关闭所有正在运行的定时器,自定义函数clearIntervals()一次关闭所有正在运行的定时器
  • 原文地址:https://www.cnblogs.com/jackadam/p/8146720.html
Copyright © 2011-2022 走看看