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的时候会用到。

flask+script命令行交互工具的更多相关文章

  1. libvirt 命令行交互工具之virsh

    libvirt是当前主流VM最低层库.IBM PowerVM也不例外,libvirt是深入玩虚拟化必须玩转的东西; 简单测试玩玩libvirt 的virsh命令行交互工具, 你我都知libvirt大体 ...

  2. 如何用nodejs 开发一个命令行交互工具

    参考地址1 参考地址2 一.npm package.json bin 1.package.json { "name": "test", "versio ...

  3. 使用 CliWrap 让C#中的命令行交互举重若轻

    在代码中进行命令行交互是一个很常见的场景, 特别是在一些CI CD 自动化流程中, 在这之前我们会使用 System.Diagnostics.Process API, 现在有一个更灵活的工具 CliW ...

  4. 【转】curl 命令行下载工具使用方法小结

    获取curl curl 命令行下载工具 curl的官方网站为: http://curl.haxx.se官方下载页面为:http://curl.haxx.se/download.html 你可能并不清楚 ...

  5. [转] Java 命令行交互-JCommander

    [From] https://github.com/Sayi/sayi.github.com/issues/32 我喜欢简单,什么是简单?正如若干字符组成的命令行. 有时候我们用Java开发了一个小工 ...

  6. virsh命令行管理工具

    virsh命令行管理工具 Libvirt有两种控制方式,命令行和图形界面 图形界面: 通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机 ...

  7. ElasticSearch 命令行管理工具Curator

    一.背景 elastic官网现在已经大面积升级到了5.x版本,然而针对elasticsearch的命令行管理工具curator现在仍然是4.0版本. 刚开始找到此工具,深深的怕因为版本更迭无法使用,还 ...

  8. [转]12款最佳Linux命令行终端工具

    摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...

  9. iOS系统提供开发环境下命令行编译工具:xcodebuild

    iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...

随机推荐

  1. 括号序和dfs序

    记得清北讲过括号序和dfs序,忘记了 dfs序 dfs序就是dfs的顺序,这个好记 就是在dfs遍历树的时候,将每个结点开始时记录一次,结束时记录一次 而且一个子树可以表示为连续的一段, 只有子树操作 ...

  2. P4013 数字梯形问题 网络流二十四题

    P4013 数字梯形问题 题目描述 给定一个由 nn 行数字组成的数字梯形如下图所示. 梯形的第一行有 m 个数字.从梯形的顶部的 m 个数字开始,在每个数字处可以沿左下或右下方向移动,形成一条从梯形 ...

  3. 4、CommonChunkPlugin提取公共js-提取多个

    cnpm install css-loader --save-dev    //css-loader 是将css打包进js cnpm install style-loader --save-dev   ...

  4. [Err] 1111 - Invalid use of group function

    本文为博主原创,未经允许不得转载: 初衷,本想通过group by sql语句查询出不同id下总数在一定范围内的数据,所以产生如下的sql,及错误sql AND STATDATE < ' GRO ...

  5. idea oracle反向工程生成实体类

    1. 选择View-Tool Window- Database 2. 配置数据库信息 提示:配置完成后可以通过idea进行sql查询等操作 3.在项目中创建hbernate.cfg.xml文件, 在r ...

  6. 告诉你什么是javascript的回调函数

    函数也是对象 想弄明白回调函数,首先的清楚地明白函数的规则.在javascript中,函数是比较奇怪的,但它确确实实是对象.确切地说,函数是用Function()构造函数创建的Function对象.F ...

  7. hdu 5652 India and China Origins 并查集+二分

    India and China Origins Time Limit: 2000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/ ...

  8. Hashtable、HashMap、TreeMap心得

    三者均实现了Map接口,存储的内容是基于key-value的键值对映射,一个映射不能有重复的键,一个键最多只能映射一个值. (1) 元素特性 HashTable中的key.value都不能为null; ...

  9. 对 Kotlin 与 Java 编程语言的思考

    从长远来看,排名前10的也基本上是Java.C.C++.Python.C#.VB.PHP.JavaScript.至于Kotlin的排名,11月份在编程语言仅排41名,Ratings仅有0.216%. ...

  10. Spring AMQP 源码分析 07 - MessageListenerAdapter

    ### 准备 ## 目标 了解 Spring AMQP 如何用 POJO 处理消息 ## 前置知识 <Spring AMQP 源码分析 04 - MessageListener> ## 相 ...