Pythonベース-フラスコ

14541 ワード

学習内容


htmlは商品ですが、
フラスコはウェブページを印刷する工場です

今日勉強する内容

  • ページ例

  • 1.「create」を選択すると、入力テキストのボックスが表示されます.
    2.テキストボックスの下にあるCreateボタンをクリックすると、リストに追加できます.
    3.リストをクリックして記事を表示します.
  • ページが多くなると、これまで学んだhtmlで1つずつ作成する方法では、1つずつページを作成するのは難しい.
    タグを変更するときにページが多すぎると、新しいタグを適用するのは難しいです.
    そこで、Webページのフラスコを動的に生成してみたいと思います.
  • 1.フラスコ環境の設定


    コンピュータの環境設定

  • cmd下pip installフラスコ
  • glitch.comサービスの使用


    glitch.com会員加入後-検索ウィンドウでフラスコをクリック-一番上の検索結果

    glitchを使用したフラスコソースコード

    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()

    学習後期


    エラーと解決方法


    glitchで、Webページにリストを作成中にエラーが発生しました.
  • 問題が発生した部分
  • @app.route('/read/1/')
    def read():
    return '''	# 문제점 1. return 들여쓰기 안 함
      <html>
        <body>
          <h1><a href="/">WEB</a></h1>
          <ol>
            <li><a href="/read/1/">html</a></li>
            <li><a href="/read/2/">css<a></li>	#문제점2. a태그 닫지 않음
            <li><a href="/read/3/">js</a></li>
          </ol>
          <h2>Read</h2>
          Hello, Read!
        </body>
      </html>
      '''
    上のコードを見ると、returnの前にスペースがないのではなく、漏れ/でエラーが発生します.
    このコードのほか、vscodeで自動的に入力が完了するコードは直接入力されるため、漏れた字が多く、多くのエラーが発生します.エラーで落胆しないで、ログとコードを見て解決策を見つけることができます.

    感想


    午前中の授業はフラスコを使う環境設定がメインなので、すぐに授業にフォローし、午後の授業は理解しながらタイプしたいと思っていましたが、講師を見逃すと入力コードさえついていけませんでした.授業の内容は難しくないが、進度に追いつかないので、もう一度復習しなければならない.
    そして、今日の授業でpythonで作ったWebフレームワークflaskを使いましたが、簡単そうに見えますが、難しいですが、とても面白くて、もっと勉強したいと思います.あらゆる分野でそうですが、ネット言語を作る方法もいろいろあり、本当に勉強することが多いと感じました.頑張ってね.