저는 현재 python으로 명령 행 구동 스크립트를 작성하기 위해 argparse를 사용합니다. 나는이 스크립트 중 많은 것을 프론트 엔드로 제공하는 서버를 만드는 것을 고려 중이다. (일부 컴퓨터는 로컬로 실행하기 위해 RAM, 처리 속도 등이 없을 수도있다). 그래서 나는 웹 페이지를 통해이 스크립트에 연결하는 다양한 방법에 대해 궁금합니다.HTML 폼과 argparse
목표는 argparse 콘텐츠에서 생성 된 웹 페이지에 해당하는 것입니다 (예 : 선택 항목이 콤보 상자로 표시되고 부울 인수는 체크 상자 등으로 표시됨). argparse가 꽤 잘 정의되어 있기 때문에 필요한 HTML을 생성하기 위해 argparse 함수에 대한 래퍼를 생성하는 것이 가능할 수도 있습니다.
고통없이 어떻게 할 수 있습니까?
편집 : 다음은 내가 구상하는 예입니다.
다음은 argparse를 사용하는 간단한 스크립트이며 그 아래에는 argparse에서 번역 된 일부 html이 있습니다. HTML을
import argparse, sys
parser = argparse.ArgumentParser()
parser.add_argument('-f', '--file', nargs='?', help="The fasta file to process.", type=argparse.FileType('r'), default=sys.stdin)
parser.add_argument('-o', '--out', nargs='?', help="The file to write processed file to.", type=argparse.FileType('w'), default=sys.stdout)
parser.add_argument('--something', help="This does something", choices=['a','b'], type=str, default='a')
parser.add_argument('--somethingelse', help="This does something else", action='store_true', type=bool)
def main():
args = parser.parse_args()
#do stuff here such a reading in files, processing, and delivering output
if __name__ == "__main__":
sys.exit(main())
는이처럼 (나는 HTML에서 끔찍한, 그래서 아마 잘못/해킹)
<form>
File: <input type="text" name="file"><br>
Out: <input type="text" name="out"><br>
<select name="something">
<option value="a" selected>a</option>
<option value="b">b</option>
</select><br>
Somethingelse: <input type="checkbox" name="somethingelse" value="true"><br>
<input type="submit" value="Submit">
</form>
다음 서버가 그와 함께 스크립트를 실행하는 원인이 제출 타격 매개 변수. 본질적으로, 나는 내 서버가 입력 한 것처럼 명령을 보내길 원한다. 만약 우리가 출력 파일을 가지고 작업한다면, 사용자에게 무언가를 다운로드 할 수있다. (그러나 그것은 다른 시간 동안 문제가된다.)
난 당신이 [장고] 들여다 제안 할 수 있습니다 (https://www.djangoproject.com/)? – 2rs2ts
내가 틀렸다면 나에게 장고로 많이 놀지는 않았지만 정정하십시오 : 장고에 코드를 작성하여 양식을 만든 다음 장고가 보내는 스크립트를 작성하십시오. 스크립트를 업데이트하면 양식을 업데이트해야합니다. 양식이 스크립트에서 생성 된 경우 스크립트를 변경해야만하고 양식이 자동으로 최신 상태로 유지 될 것이라고 생각합니다.그 방법은 단지 1 단계이고 1 파일 만 유지하면됩니다. – Chrismit
정확하게 작동하는 것은 아닙니다. 두 개의 파일을 유지할 필요가 없습니다. Django보기와 일부 템플리트 HTML을 사용하여 양식을 생성하지만 동일한보기가 양식 제출을 처리 할 수도 있습니다. [문서] (https://docs.djangoproject.com/en/dev/topics/forms/#using-a-form-in-a-view)를 확인하십시오. 본질적으로 파이썬 파일이 장고가하는 웹 페이지를 생성하는 것에 대해 이야기하고 있습니다. – 2rs2ts