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的时候会用到。
flask+script命令行交互工具的更多相关文章
- libvirt 命令行交互工具之virsh
libvirt是当前主流VM最低层库.IBM PowerVM也不例外,libvirt是深入玩虚拟化必须玩转的东西; 简单测试玩玩libvirt 的virsh命令行交互工具, 你我都知libvirt大体 ...
- 如何用nodejs 开发一个命令行交互工具
参考地址1 参考地址2 一.npm package.json bin 1.package.json { "name": "test", "versio ...
- 使用 CliWrap 让C#中的命令行交互举重若轻
在代码中进行命令行交互是一个很常见的场景, 特别是在一些CI CD 自动化流程中, 在这之前我们会使用 System.Diagnostics.Process API, 现在有一个更灵活的工具 CliW ...
- 【转】curl 命令行下载工具使用方法小结
获取curl curl 命令行下载工具 curl的官方网站为: http://curl.haxx.se官方下载页面为:http://curl.haxx.se/download.html 你可能并不清楚 ...
- [转] Java 命令行交互-JCommander
[From] https://github.com/Sayi/sayi.github.com/issues/32 我喜欢简单,什么是简单?正如若干字符组成的命令行. 有时候我们用Java开发了一个小工 ...
- virsh命令行管理工具
virsh命令行管理工具 Libvirt有两种控制方式,命令行和图形界面 图形界面: 通过执行名virt-manager,启动libvirt的图形界面,在图形界面下可以一步一步的创建虚拟机,管理虚拟机 ...
- ElasticSearch 命令行管理工具Curator
一.背景 elastic官网现在已经大面积升级到了5.x版本,然而针对elasticsearch的命令行管理工具curator现在仍然是4.0版本. 刚开始找到此工具,深深的怕因为版本更迭无法使用,还 ...
- [转]12款最佳Linux命令行终端工具
摘要 “工欲善其事必先利其器”,作为菜鸟,也是从别人那里偷学来的一些东东.今天看到同事用到一个终端命令行工具,觉得自己弱爆了.然后在网上搜了下该工具.发现类似的工具还是挺多的,只是自己不知道罢了. 原 ...
- iOS系统提供开发环境下命令行编译工具:xcodebuild
iOS系统提供开发环境下命令行编译工具:xcodebuild[3] xcodebuild 在介绍xcodebuild之前,需要先弄清楚一些在XCode环境下的一些概念[4]: Workspace:简单 ...
随机推荐
- E: could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporary unavailable) E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is an other process using it
1. 问题详细提示如下: E: Could not get lock /var/lib/dpkg/lock-frontend - open (11: Resource temporarly unava ...
- BZOJ 3555: [Ctsc2014]企鹅QQ
似乎大家全部都用的是hash?那我讲一个不用hash的做法吧. 首先考虑只有一位不同的是哪一位,那么这一位前面的位上的字符一定是全部相同,后面的字符也是全部相同.首先考虑后面的字符. 我们对n个串的反 ...
- Leetcode ——Lowest Common Ancestor of a Binary Tree
Question Given a binary tree, find the lowest common ancestor (LCA) of two given nodes in the tree. ...
- stm32 延时函数 delay_ms 范围
void delay_us(u32 nus) { u32 temp; SysTick->LOAD=nus*fac_us; //时间加载 SysTick->VAL=0x00; //清空计数器 ...
- HDU 5876 Sparse Graph(补图中求最短路)
http://acm.hdu.edu.cn/showproblem.php?pid=5876 题意: 在补图中求s到其余各个点的最短路. 思路:因为这道题目每条边的距离都是1,所以可以直接用bfs来做 ...
- POJ 1953 World Cup Noise(递推)
https://vjudge.net/problem/POJ-1953 题意:输入一个n,这n位数只由0和1组成,并且不能两个1相邻.计算共有多少种排列方法. 思路:递推题. 首先a[1]=2,a[2 ...
- 读书笔记:Spring boot实战
第一章 入门 Spring boot最重要的四个核心 : 1.自动配置:针对很多spring应用程序常见的应用功能,spring boot能自动提供相关配置 2.起步依赖:告诉spring boot需 ...
- oadrunner11录制手机app脚本
oadrunner11录制手机app视频:http://pan.baidu.com/s/1bnc4cHL 注意点: 1.手机和loadrunner安装的电脑必须在同一网段2.视频的www.baidu. ...
- VC++异常处理
1.测试代码: #include <stdio.h> #include <windows.h> void main() { __try { DWORD dwDemonObj = ...
- idea运行main方法报错,提示Shorten command line for xxx
在Intell IDEA运行main函数的时候遇到了如下错误: Error running' xxxxxx': Command line is too long. Shorten command li ...