Repl.it에서 폭속으로 Python3+Flask+SQLite3의 프로그램을 움직여 보았다

0. 처음에



저는 엔지니어가 아닌 단지 도실로트입니다.

Python3+Flask+SQLite3 환경을 쉽게 만들 수 있는 Repl.it이라는 온라인 IDE를 사용해 보았습니다.

Repl.it - ​​The world's leading online coding platform
h tps : // 레 pl. t/

60개 이상의 프로그램 언어에 대응한 IDE인 것 같습니다.
무료로 사용할 수 있습니다. (비공개라면 유료)

1. 사용법



너무 간단해서 사용법을 애니메이션 GIF 정리했습니다.



단지 이것뿐입니다.

로그인하지 않아도 저장할 수 없는 것만으로 시도해 볼 수 있습니다.

2. 복사한 프로그램



매우 간단한 Flask를 이용한 프로그램입니다.

WEB 화면에서 다음을 할 수 있는 프로그램입니다.
  • 데이터베이스 생성
  • 테이블 생성
  • 테이블 내용 목록 표시
  • 데이터베이스 삭제

  • main.py
    from flask import Flask
    import os
    import sqlite3
    import sys
    
    
    
    app = Flask(__name__)
    
    
    @app.route("/")
    def index():
        #return "Hello World!"
        return '''
    <h1>Flask SQLite3テスト</h1>
    <a href="./readtasktb">タスク一覧</a><br>
    <a href="./credb">DB生成</a><br>
    <a href="./cretable">テーブル生成</a><br>
    <a href="./deldb">DB削除</a><br>
        '''
    @app.route("/credb")
    def credb():
    
        kka = ""
    
    
        db_filename = 'todo.db'
    
        db_is_new = not os.path.exists(db_filename)
    
        conn = sqlite3.connect(db_filename)
    
        if db_is_new:
            print('Database created!!')
            kka = 'Database created!!'
        else:
            print('Database exists, assume schema does, too.')
            kka = 'Database exists, assume schema does, too.'
        conn.close()
    
        return kka + "<br><br><a href=\"../\">back</a>"
    
    @app.route("/deldb")
    def deldb():
    
        kka = ""
        db_filename = 'todo.db'
        try:
            os.remove(db_filename)
            kka = "Database deleted!!"
        except Exception as e:
            kka = "Database not deleted!! becouse of <br>"+str(e)    
        return kka + "<br><br><a href=\"../\">back</a>"
    
    
    @app.route("/cretable")
    def cretable():
    
        kka = ""
    
        db_filename = 'todo.db'
    
        with sqlite3.connect(db_filename) as conn:
            conn.executescript("""
                create table project (
                    name        text primary key,
                    description text,
                    deadline    date
                );
    
                create table task (
                    id           integer primary key autoincrement not null,
                    priority     integer default 1,
                    details      text,
                    status       text,
                    deadline     date,
                    completed_on date,
                    project      text not null references project(name)
                );
            """)
    
            print('Create schema')
            kka = kka + 'Creating schema<br>'
    
            conn.executescript("""
            insert into project (name, description, deadline)
            values ('pymotw', 'Python Module of the Week',
                    '2016-11-01');
    
            insert into task (details, status, deadline, project)
            values ('write about select', 'done', '2016-04-25',
                    'pymotw');
    
            insert into task (details, status, deadline, project)
            values ('write about random', 'waiting', '2016-08-22',
                    'pymotw');
    
            insert into task (details, status, deadline, project)
            values ('write about sqlite3', 'active', '2017-07-31',
                    'pymotw');
            """)
    
            print('Insert initial data')
            kka = kka + '<br>Insert initial data<br>'
    
    
    
        return kka + "<br><br><a href=\"../\">back</a>"
    
    
    @app.route("/readtasktb")
    def readtasktb():
    
        kka = ""
        db_filename = 'todo.db'
    
        try:
            with sqlite3.connect(db_filename) as conn:
                cursor = conn.cursor()
    
                cursor.execute("""
                select id, priority, details, status, deadline from task
                where project = 'pymotw'
                """)
    
                for row in cursor.fetchall():
                    task_id, priority, details, status, deadline = row
                    print('{:2d} [{:d}] {:<25} [{:<8}] ({})'.format(
                        task_id, priority, details, status, deadline))
                    kka = kka + '{:2d} [{:d}] {:<25} [{:<8}] ({})'.format(
                        task_id, priority, details, status, deadline) + '<br>'
        except Exception as e:
            kka = "Task table list not generated!! becouse of <br>"+str(e)              
        return "task tb read result<br><br>" + kka + "<br><br><a href=\"../\">back</a>"
    
    
    
    if __name__ == "__main__":
        app.run(debug=True, port='3000', host='0.0.0.0')
    
    
    

    3. 결론



    프로그램이 준비되어 있으면 30초에 Python3+Flask+SQLite3의 테스트를 할 수 있습니다.

    꽤 편리하다고 생각합니다.

    그 이상

    좋은 웹페이지 즐겨찾기