英文読解補助ツールの開発まで

以前、無料で受験勉強などの方法や情報を提供している方から高校生が低コストで読解力を作るためのツールの提供をお願いされた。

そこで、その開発を請け負うことになったのだが、開発にあたっての技術的な話やメモをここに残しておく。

index.htmlを作成

まずtemplateというフォルダーを用意してそこにindex.htmlを作成。

言語はpythonを使用することにした。

pythonを選んだ理由は、簡単に記述することができAIなども使用できるからだ。

将来性を考えると、AIを使えた方が断然良い。

{% extends 'base.html' %}

{% block body %}
<h1>Index Page</h1>

<a href="/create" class="btn-lg btn-info" role="button">投稿する</a>
<form action="/search" method="POST">
  <div class="mb-3">
      <label for="exampleFormControlTextarea1" class="form-label">検索ワード</label>
      <input class="form-control" type="text" name="key_words" placeholder="Default input" aria-label="default input example">
    </div>
  <button type="submit" class="btn btn-success">検索する</button>
</form> 
<div class="container">
  {% for post in posts %}
  <div class="card">
      <div class="card-body">
        <h5 class="card-title">{{ post.cur_text }}</h5>
        <p class="card-text">Deep Level:{{ post.deep_lv }}</p>
        <p class="card-text">Post ID:{{ post.post_id }}</p>
        <a role="button" href="/detail/{{ post.id }}" class="btn-lg btn-secondary">詳細</a>
        <a role="button" href="/edit/{{ post.post_id }}" class="btn-lg btn-secondary">編集</a>
        <a role="button" href="/delete/{{ post.id }}" class="btn-lg btn-danger">削除</a>
      </div>
  </div>
  {% endfor %}
</div>
<script>

  </script>
{% endblock %}

またbase.htmlはこういう形にした。

<html lang="ja">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.0-beta1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-giJF6kkoqNQ00vy+HMDP7azOuL0xtbfIcaT9wjKHr8RbDVddVHyTfAAsrekwKmP1" crossorigin="anonymous">
    <title>SAMPLE_APPLICATION</title>
    {% block head %}{% endblock %}
</head>
<body>
    {% block body %}{% endblock %}
</body>
</html>

base.htmlでbootstrapを読んでいるのは簡単なサイトなので変更しやすくしためである。

Google trancelaterのAPIをインストールするのだが、Googleが馬鹿なせいかエラーが起きるので、以下の方法法で対処する。

侍テラコヤ(SAMURAI TERAKOYA) - 日本最安級のサブスク型オンラインITスクール
侍テラコヤは、【無料】で始められる日本最安級のサブスク型オンラインITスクールです。つまづいた時にエンジニアに相談できるQA掲示板、勉強を習慣化できる学習ログ、サービス開発しながら学べる学習教材など、エンジニアになるための機能が盛り沢山!

2次元配列を渡す

Flaskでクライアントサイドに変数(値・リスト・辞書型配列)を渡して表示させる
この記事の著者データサイエンティスト/ブロガーたぬtanu詳しいプロフィールプロフィール福岡在住のデータサイエンティスト。Pythonでルーチンワークを瞬殺する仕組みを作ることやデータを視覚化することが得意です。...

python CGIモジュールが必要そう。。。

PythonでCGIスクリプトを書く方法【初心者向け】 | TechAcademyマガジン
初心者向けにPythonでCGIスクリプトを書く方法について解説しています。CGIを使うとレンタルサーバーなどでWebサイトの一部として動作させることが出来ます。Pythonでも掲示板やWebアプリケーションを作成することが出来るようになります。

サーバーはこれのとうりにすると動いた。

でも、最初は動かなかった・・・なぜだろう?

Flaskの便利なこと

flask-login - Qiita
flask-loginの使い方flask-loginを取り扱うサイトでは意外と重要なことが省略されており非常にわかりにくい良さげなページを見つけたが、おそらく外国語サイトからの引用で、日本語と英…
ページを開くと、背景が暗くなりテキストを表示 | 動くWebデザインアイディア帳

これも使った

HTMLとCSSだけでカルーセル・スライダーを実装するテクニックのまとめ
カルーセルやスライダーをHTMLとCSSだけで実装するテクニックを紹介します。Flexboxでの横一列配置をはじめ、scroll-snap-typeやscroll-behaviorでスライドのスクロ

画像を縦固定、横広がりにするためのCSS

画像の高さを固定して横幅だけ伸縮させる方法 | Designmemo(デザインメモ)-初心者向けWebデザインTips-
横幅いっぱいに広げた画像の高さを固定してもきれいに表示させる方法を紹介します。通常であれば、横幅を100%にして高さを固定すると、縦に潰れて表示されてしまいますが、CSSのobject-fitプロパティを使うことで防ぐことができます。

タイトルとURLをコピーしました