[開発ログ6日目]Python Flask

24740 ワード

1.学習内容


1)Webフレームワークの概念
1-1)フロントエンド(フロントエンド、クライアント)
  • css、html、JavaScriptについて説明します.
  • Web開発では、フロントエンドは、ユーザが見える部分(UI)に関連する.
  • 1-2)バックエンド
  • バックエンド開発者は、サーバ側言語を学習し、サーバとデータ通信などを行う必要がある.
  • Python、Kotlin、Java、Nodeなど
  • バックエンドは、ユーザに見えないデータベース空間およびサーバの構築を意味すると考えられる.
  • <コメント>
    frontendとbackendが一緒に働いている人はfull stackエンジニアと呼ばれています.
    1-3)Webフレームワーク
    Webフレームワーク(Web Framework,WF)またはWebアプリケーションフレームワーク(Web Application Framework,WAF)は、動的Webページ、Webアプリケーション、またはWebサービス開発を支援するためのアプリケーションフレームワークである.Webページの開発中に発生する困難を減らすには、通常、データベース連動、テンプレート形式の標準、セッション管理、コード再利用などの機能が含まれます.
    1-4) flask
    フラスコはホームページを印刷する工場です.
    ホームページ:https://flask.palletsprojects.com/en/2.1.x/

    Pythonからダウンロード:Visual codeから端末のpip installフラスコにダウンロード


    1-5)フラスコが作動していない場合
    ホームページ:https://glitch.com/
  • の小さな障害から
  • を検索する.
  • view source
  • コピー:Remix you own
  • 2)ルーティング
    ルーティングは、私たちが使用しているIPアドレスに基づいて、データに道を見つけさせるシステムです.
    すなわち、ルーティングを「ルーティング」と呼び、ルーティングパケットを転送するネットワークデバイスを「ルータ」と呼び、「ルータ」はルーティングパケットを転送する行為を「ルーティング」と呼ぶ.
  • 3)型枠
    template()とは?
    htmlなどで関数などを用いて文の重複や重複を防止すればflask tk上でテンプレート化を用いることでコードを簡略化できる.
    @app.route("/")
    def index():
      return template('aa.html') #View 함수,html template를 불러온다.
    例)
    from flask import Flask
    
    app = Flask(__name__)
    
    topics = [
      {"id":1, "title":"html", "body":"html is ...."},
      {"id":2, "title":"css", "body":"css is ...."},
      {"id":3, "title":"js", "body":"js is ...."}
    ]
    
    def template(content):
      liTags = ''
      for topic in topics:
        liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
      return f'''
      <html>
        <body>
          <h1><a href="/">WEB</a></h1>
          <ol>
            {liTags}
          </ol>
          {content}
          <ul>
            <li><a href="/create/">create</a></li>
          </ul>
        </body>
      </html>
      '''
    
    @app.route("/")
    def index():
      return template('<h2>Welcome</h2>Hello, WEB!')
    
    @app.route("/read/<int:id>/")
    def read(id):
      title = ''
      body = ''  
      for topic in topics :
        if topic['id'] == id:
          title = topic['title']
          body = topic['body']
          break;
      return template(f'<h2>{title}</h2>{body}')
    
    @app.route('/create/')
    def create():
      content = '''
        <form action="/create/">
          <p><input type="text" name="title" placeholder="title"></p>
          <p><textarea name="body" placeholder="body"></textarea></p>
          <p><input type="submit" value="create"></p>
        </form>
      '''
      return template(content)
    
    @app.route('/update/')
    def update():
      return 'Update'
    
    app.run()
    結果)

  • 初期画面


  • 「create」をクリックすると

  • 4)グーグル連動
    from flask import Flask
    
    app = Flask(__name__)
    
    topics = [
      {"id":1, "title":"html", "body":"html is ...."},
      {"id":2, "title":"css", "body":"css is ...."},
      {"id":3, "title":"js", "body":"js is ...."}
    ]
    
    def template(content):
      liTags = ''
      for topic in topics:
        liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
      return f'''
      <html>
        <body>
          <h1><a href="/">WEB</a></h1>
          <ol>
            {liTags}
          </ol>
          {content}
          <ul>
            <li><a href="/create/">create</a></li>
          </ul>
        </body>
      </html>
      '''
    
    
    @app.route("/")
    def index():
      return template('<h2>Welcome</h2>Hello, WEB!')
    
    @app.route("/read/<int:id>/")
    def read(id):
      title = ''
      body = ''  
      for topic in topics :
        if topic['id'] == id:
          title = topic['title']
          body = topic['body']
          break;
      return template(f'<h2>{title}</h2>{body}')
    
    @app.route('/create/')
    def create():
      content = '''
        <form action="https://www.google.com/search">
          <p><input type="text" name="title" placeholder="title"></p>
          <p><textarea placeholder="body"></textarea></p>
          <p><input type="submit" value="create"></p>
        </form>
      '''
      return template(content)
    
    @app.route('/update/')
    def update():
      return 'Update'
    
    app.run()
    結果)

    2.学習内容の難点または未解決の問題

    from flask import Flask
    
    app = Flask(__name__)
    
    topics = [
      {"id":1, "title":"html", "body":"html is ...."},
      {"id":2, "title":"css", "body":"css is ...."}
    ]
    def template(content):
      liTags = ''
      for topic in topics:
        liTags = liTags + f'<li><a href="/read/{topic["id"]}/">{topic["title"]}</a></li>'
      return f'''
      <html>
        <body>
          <h1><a href="/">WEB</a></h1>
          <ol>
            {liTags}
          </ol>
          {content}
        </body>
      </html>
      '''
    
    
    @app.route("/")
    def index():
      return template('<h2>Welcome</h2>Hello,Web!')
      
    @app.route("/read/<int:id>/")
    def read(id):
      title = ''
      body = ''
      for topic in topics:
        if topic['id'] == id:
          title = topic['title']
          body = topic['body']
          break;
      return template()
    @app.route('/create/')
    def create():
      return 'Create'
    
    @app.route('/update/')
    def update():
      return 'Update'
    
    app.run()
    この部分では,ラウンドとラウンドの概念を適用することは学習内容において困難である.

    3.ソリューションの作成


    ルート選択-レッスンビデオを参照
    3-1)まずcodeを入力し、glitchでpreviewでウィンドウ画面を開きます.

    3-2)未亡人を開くと、次の住所が見えます.

    3−3)ルーティングのために/create/を末尾に添付する.

    <コメント>
    @app.route('/create/')
    def create():
      return 'Create'
    
    @app.route('/update/')
    def update():
      return 'Update'
    でroute('/##/')を作成したので、作成するだけでなく、更新することもできます.
    3-4)結果

    4.勉強の心得


    これは今まで聞いた中で一番分かりにくい授業なので、復習が大切です.html、css、JavaScript、Pythonの後にflaskを加えると、それぞれのコンセプトが混ざっていて整理されていないような気がします.
    また、教室で一緒にコードを作ればついていけるのですが、自分でやれば本当にできるのでしょうか?という考えが生まれた.