Python으로 프로그래밍 Flask 편
파이썬으로 프로그래밍
사전 준비 테스트 데이터
테스트를 위해 drivers.csv를 사용하십시오.
htps : // 기주 b. 이 m/의 이케단/fぁsk_아니 p/t레에/로ゔぇぉp
아티팩트
배경
Python으로 만든 Insert 분 작성 툴을 Web화한다.
이유 : 현재의 것에서는 사용하기 어렵기 때문.
대상 사용자(예)
집에서 포트폴리오를 만들기 위해 웹 서비스를 만들고 있습니다.
데이터 작성을 위해 Insert 작성을 도구로 편리하게 사용하고 싶은 사람.
비 대상 사용자
현장에서 사용할 수 없다면 0이라고 생각하는 사람.
리뷰라든가 손님이라든가 말해 개발자에게 걸려오는 사람.
진척 진척만 말해 날에 모두 충동적으로 오는 사람.
클레임만 붙여 오는 사람.
INPUT Python 처리(GITHUB)
원안
· 파일을 업로드합니다.
· SQL을 만든다.
· 파일에 씁니다.
· 파일을 다운로드합니다.
환경
FLASK
SQL 문은 postgresql을 가정합니다.
파이썬 환경 구축은 아래 참조
htps : // m / 7110 / ms / 1 아 5968022373 99 28
pip3 install Flask
FLASK_APP=app.py FLASK_DEBUG=true flask run
조사
파일 업로드 방법은 아래 주소를 따릅니다.
htps // f sk. 파트 tsp 로지 cts. 코 m/엔/1.1. x/쿠이 cks rt/
AWS상에 FLASK를 Deploy시에 참고로 한 것.
htps : //에서. 이 m / 10도 히 6 / n / n 273 바 d25c378
이미지
출력 소스
소스 코드
Index.html
<html>
<head>
<tilte>Insert文作成ツール</tilte>
</head>
<body>
<form method="post" action="/todos/uploader" enctype = "multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="Create" />
</form>
<p>
<a href="{{ url_for('.download_file') }}">Download</a>
</p>
</body>
</html>
InsertApp.py
from flask import Flask, render_template
from flask import request,send_file
app = Flask(__name__)
@app.route('/todos/uploader', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
f.save(f.filename)
input = './' + f.filename
output = './output.txt'
table = input.split('/')[-1].split('.')[0]
with open(input, encoding='utf-8') as f:
with open(output, 'w', encoding='utf-8') as g:
contents = "Insert into " + table + "("
i = 0
for row in f:
if i == 0:
typeList = row.rstrip().split(',')
if i == 1:
columList = row.rstrip().split(',')
k = 0
for c in columList:
if len(columList) == k + 1:
contents = contents + c + 'VALUES ('
else:
contents = contents + c + ','
k = k + 1
basecontets = contents
if i >= 2:
j = 0
for r in row.rstrip().split(','):
if not 'INTEGER' in typeList[j]:
r = "'" + r + "'"
if len(row.rstrip().split(',')) == j + 1:
basecontets = basecontets + r
else:
basecontets = basecontets + r + ','
j = j + 1
basecontets = basecontets + ');' + '\n'
g.write(basecontets)
basecontets = contents
i = i + 1
print("作成完了しました")
return render_template('index.html')
@app.route('/download')
def download_file():
path = './output.txt'
return send_file(path, as_attachment=True)
@app.route('/')
def index():
return render_template('index.html')
Reference
이 문제에 관하여(Python으로 프로그래밍 Flask 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/JoeB/items/e9707da21facd1aed3af
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Index.html
<html>
<head>
<tilte>Insert文作成ツール</tilte>
</head>
<body>
<form method="post" action="/todos/uploader" enctype = "multipart/form-data">
<input type="file" name="file" />
<input type="submit" value="Create" />
</form>
<p>
<a href="{{ url_for('.download_file') }}">Download</a>
</p>
</body>
</html>
InsertApp.py
from flask import Flask, render_template
from flask import request,send_file
app = Flask(__name__)
@app.route('/todos/uploader', methods=['GET', 'POST'])
def upload_file():
if request.method == 'POST':
f = request.files['file']
f.save(f.filename)
input = './' + f.filename
output = './output.txt'
table = input.split('/')[-1].split('.')[0]
with open(input, encoding='utf-8') as f:
with open(output, 'w', encoding='utf-8') as g:
contents = "Insert into " + table + "("
i = 0
for row in f:
if i == 0:
typeList = row.rstrip().split(',')
if i == 1:
columList = row.rstrip().split(',')
k = 0
for c in columList:
if len(columList) == k + 1:
contents = contents + c + 'VALUES ('
else:
contents = contents + c + ','
k = k + 1
basecontets = contents
if i >= 2:
j = 0
for r in row.rstrip().split(','):
if not 'INTEGER' in typeList[j]:
r = "'" + r + "'"
if len(row.rstrip().split(',')) == j + 1:
basecontets = basecontets + r
else:
basecontets = basecontets + r + ','
j = j + 1
basecontets = basecontets + ');' + '\n'
g.write(basecontets)
basecontets = contents
i = i + 1
print("作成完了しました")
return render_template('index.html')
@app.route('/download')
def download_file():
path = './output.txt'
return send_file(path, as_attachment=True)
@app.route('/')
def index():
return render_template('index.html')
Reference
이 문제에 관하여(Python으로 프로그래밍 Flask 편), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/JoeB/items/e9707da21facd1aed3af텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)