Flask-Script 사용
15582 단어 flask
설치
pip install flask-script
명령 작성 및 실행
우선, 우리는 당신의 스크립트 명령을 실행하기 위해 파이썬 모듈을 만듭니다. 아래와 같습니다
manage.py
.from flask import Flask
from flask_script import Manager
app = Flask(__name__)
manager = Manager(app)
if __name__ == "__main__":
manager.run()
다음 단계는 명령을 만들고 추가하는 것입니다. 명령을 만드는 데는 세 가지 방법이 있습니다.
다음은 Command 클래스 하위 클래스를 사용하여 간단한 밤을 들어 보겠습니다.
from flask_script import Command
class Hello(Command):
def run(self):
print 'hello world'
다음은 우리의
Manager
사례에 명령을 추가합니다.manager.add_command('hello', Hello())
또는, Commanddict의 실례를 관리자에게 전달할 수도 있습니다.run():
manager.run({"hello": Hello()})
이제 명령줄에 다음 명령을 입력합니다.
# hello add_command hello
root@ubuntu:~# python manage.py hello
hello world
또한 빈 명령을 사용하여 사용 가능한 명령과 설명된 목록을 얻을 수 있습니다.
root@ubuntu:~# python manage.py
usage: manage.py [-?] {hello,shell,runserver} ...
positional arguments:
{hello,shell,runserver}
hello
shell Runs a Python shell inside Flask application context.
runserver Runs the Flask development server i.e. app.run()
...
우리는 또한 특정한 도움말 텍스트를 얻을 수 있다.
# hello add_command hello
python manage.py hello -?
@command 장식기 사용하기
다음은
@command
장식기를 사용하여 간단한 밤을 들어보자.@manager.command
def hello():
print 'hello world'
다음은 명령줄에 다음 명령을 직접 입력할 수 있습니다.
# hello hello
root@ubuntu:~# python manage.py hello
hello world
@option 장식기 사용하기
다음은
@option
장식기를 사용하여 간단한 밤을 들어보자.@manager.option('-n', '--name', help='option decorator', default='laowang')
def hello(name):
print 'hello {}'.format(name)
다음은 명령줄에 다음 명령을 직접 입력할 수 있습니다.
# hello hello
root@ubuntu:~# python manage.py hello
hello laowang
명령에 매개변수 추가
대부분의 명령은 명령줄에서 전달되는 이름이나 위치 매개 변수를 수신합니다.
Command 클래스 하위 클래스화
from flask_script import Manager, Command, Option
class Hello(Command):
option_list = (
Option('-n', '--name', dest='name', default='laowang'),
)
def run(self, name):
print 'hello {}'.format(name)
manager = Manager(app)
manager.add_command('hello', Hello())
또는, 당신도Command 클래스에 다음과 같은 방법
get_options
을 정의할 수 있습니다.from flask_script import Manager, Command, Option
class Hello(Command):
def __init__(self, default_name='laowang'):
self.default_name = default_name
def get_options(self):
return [
Option('-n', '--name', dest='name', default=self.default_name),
]
def run(self, name):
print 'hello {}'.format(name)
manager = Manager(app)
manager.add_command('hello', Hello())
그런 다음 터미널에 다음 명령을 입력하여 검증합니다.
root@ubuntu:~# python manage.py hello
hello laowang
root@ubuntu:~# python manage.py hello -n laozhang
hello laozhang
root@ubuntu:~# python manage.py hello -n=laozhang
hello laozhang
root@ubuntu:~# python manage.py hello --name laozhang
hello laozhang
root@ubuntu:~# python manage.py hello --name=laozhang
hello laozhang
주의해야 할 것은
dest
매개 변수의 값은 run
방법의 매개 변수 이름에 대응하고 있으며, 값은 반드시 일치해야 한다. 그렇지 않으면 오류가 발생할 것이다!Option
뒤에 절대 잊지 마세요,
, default
는 기본 매개 변수 값을 나타냅니다.@command 장식기 사용하기
@manager.command
def hello(name):
print 'hello {}'.format(name)
그런 다음 터미널에 다음 명령을 입력하여 검증합니다.
root@ubuntu:~# python manage.py laozhang
hello laozhang
또한 기본 매개변수로 설정할 수도 있습니다.
@manager.command
def hello(name='laowang'):
print 'hello {}'.format(name)
그런 다음 터미널에 유효성을 검사하기 위해 해당 명령을 입력합니다(기본 매개 변수가 없으면 다음과 같이 오류가 발생합니다).
root@ubuntu:~# python manage.py
hello laowang
root@ubuntu:~# python manage.py --name laozhang
hello laozhang
root@ubuntu:~# python manage.py --name=laozhang
hello laozhang
root@ubuntu:~# python manage.py -n laozhang
hello laozhang
root@ubuntu:~# python manage.py -n=laozhang
hello laozhang
주의해야 할 것은 간략한 형식
-n
이 매개 변수name
의 첫 번째 자모라는 것이다!또한 선택 가능한 매개변수가 부울 값이면 다음과 같습니다.
@manager.command
def hello(sex=False):
info = 'True' if sex else 'False'
print info
그런 다음 명령줄에 다음 명령 확인을 입력할 수 있습니다.
root@ubuntu:~# python manage.py hello
False
root@ubuntu:~# python manage.py hello --sex
True
root@ubuntu:~# python manage.py hello -s
True
@option 장식기 사용하기
@manager.option('-u', '--url', dest='url', default='www.baidu.com')
@manager.option('-n', '--name', dest='name', default='laowang')
def hello(name, url):
print name, url
그런 다음 명령줄에 다음 명령 확인을 입력할 수 있습니다.
root@ubuntu:~# python manage.py hello -n laozhang -u blog.csdn.net
laozhang blog.csdn.net
사용자 입력 가져오기
Flask-Script
에는 명령줄에서 사용자 입력을 가져오는 데 사용할 보조 함수 세트가 포함되어 있습니다.from flask_script import prompt_bool
@manager.command
def hello():
if prompt_bool(' ?'):
print ' '
그런 다음 다음 명령줄에 다음 명령을 입력하여 검증할 수 있습니다.
root@ubuntu:~# python manage.py hello
? [n]: y
우리가 여기에 입력한 것은 y, 즉 yes이기 때문에 통과한 후에 인쇄를 진행했다!
기본 명령
위의 명령
python manage.py
의 출력 내용에서 볼 수 있듯이 명령hello
외에 두 개의 기본 명령shell
, runserver
runserver 다음은 명령줄에서 이
runserver
명령을 사용합니다.root@ubuntu:~# python manage.py runserver
* Serving Flask app "manage" (lazy loading)
* Environment: production
WARNING: Do not use the development server in a production environment.
Use a production WSGI server instead.
* Debug mode: off
* Running on http://127.0.0.1:5000/ (Press CTRL+C to quit)
이렇게 웹 서비스를 시작했습니다.또한, 우리는
-h
와-p
파라미터를 추가하여 각각host와port를 지정할 수 있습니다또한 다음과 같은 유사한 명령
runserver
기능을 구현하기 위해 명령을 사용자 정의할 수 있습니다.from flask_script import Manager, Server
manager = Manager(app)
manager.add_command('run', Server())
또한 다음과 같이
Server
에 host와 port 매개 변수를 추가할 수 있습니다.manager.add_command('run', Server(host='0.0.0.0', port=5000))
shell
shell
명령은 Python Shell을 시작하고 다음 명령줄에 기본 shell
명령을 다음과 같이 입력합니다.root@ubuntu:~# python manage.py shell
>>>
또한 다음과 같은 명령을 실행하기 위해 명령을 사용자 정의할 수 있습니다.
from flask_script import Manager, Shell
def _make_context():
return dict(app=app, age=18)
manager = Manager(app)
manager.add_command('sh', make_context=_make_context)
다음 명령줄에 다음과 같이 사용자 정의
shell
명령을 입력합니다.root@ubuntu:~# python manage.py sh
>>> print age
18
>>>
이로써 오버~~
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
(동영상) Flask API 생성기 및 보기 - 무료 제품이 문서에서 언급한 비디오 자료는 항목을 추가, 편집 및 제거할 수 있는 간단한 페이지인 API 보기를 사용하여 Flask 생성 API와 상호 작용하는 방법을 설명합니다. 이 기능으로 향상된 제품 은 Github에서...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.