自動化無しに生活無し

WEB開発関係を中心に備忘録をまとめています

  • Herokuのデータベース(herokupostgres)の実装と設定方法【Hobby-Plan】

    Heroku postgresの実装方法 プロジェクトのResourcesからHeroku Postgresを指定。 続いて、Submit Order Formを指定する。プランはHobbyを選択。 Add-onsのHerokuPostgresのリンクをクリック、SettingsタブのDatabaseCredentialsのView Credentialsをクリック データベース名などの認証情報が表示される。これをプロジェクトの設定 ...
  • Djangoのマイグレーションのエラー時の対処法

    Djangoで開発を進めている時、マイグレーションのエラーにぶち当たるときがあるが、大抵はmigrationsディレクトリを編集していけばいいだけなので、それほど難しいものではない。 本記事ではmigrationsディレクトリ内のファイル編集を行うことで、マイグレーションのエラー時の対処法をまとめる。 サンプルコード まず、マイグレーションエラーの再現をするために、サンプルのコードを下記に公開した。プロ ...
  • DjangoをDEBUG=FalseでHerokuにデプロイする方法

    プロジェクトのディレクトリ構造は、『現場で使えるDjangoの教科書 基礎編』に準拠している。 requirements.txt もし、仮想環境を使用していない場合、virtualenvを使って必要なライブラリをpipコマンドにてインストールする。 -- HerokuCLIをインストール Herokuではherokuコマンドを実行して、事前にログインをした上でデプロイを行う。下記からインストールする。 https://devcenter.heroku.com/ja/articles/heroku-cli herokuコマンドを実行して、デプロ ...
  • DjangoをLinux(Ubuntu)サーバーにデプロイする方法【Nginx+PostgreSQL】

    DjangoをLinuxサーバーにデプロイできれば、クラウドとは違ってハードウェアの性能を余すこと無く使うことができる。 高度なAIを運用したり、それなりにセキュリティが求められるウェブアプリを運用する予定であれば実機のLinuxサーバーにデプロイしたほうが良い。 デプロイまでの流れ PostgreSQLとNginxのインストール settings.pyの修正 ホームディレクトリにプロジェクト一式を設置 必要 ...
  • Djangoで開発中、データベースへ初期データを入力する【バックアップしたデータをloaddataコマンドでリストア】

    Djangoで開発中にテストしたい時、デプロイ後に初期データを突っ込んで即公開したい時、どうしてもデータの入力作業が出てくる。 Seleniumで入力作業を自動化する方法もあるが、わざわざそんなことをしなくても初期データを突っ込む方法がある。それが python3 manage.py loaddata bbs/fixture/data.json このようにアプリディレクトリ内にfixtureディレクトリを作り、jsonのデータを指定して、リストアする models.pyに基づいたjsonファ ...
  • Djangoで『このページを表示するにはフォームデータを..』と言われたときの対処法

    『このページを表示するにはフォームデータを再度送信する必要があります。フォームデータを再送信すると以前実行した検索、投稿や注文などの処理が繰り返されます。』 POST文を実行した直後に更新ボタンを押すと、こんなふうに表示される時。こういうときはリダイレクトすればOK。 views.pyを修正する redirectをimport。POST文のreturnにredirect関数を返せばいいだけ。 from django.shortcuts import redirect #P ...
  • Djangoで数値のカンマ区切りを実装させる

    在庫とかお金とか扱うウェブアプリだとカンマ区切りは必須。 JSに任せてもいいけど、結局正規表現になる上にユーザーに負担を強いるのはどうかと。 ということでDjango側でカンマ区切りを簡単に実装させる。 settings.pyの追記 INSTALLED_APPSに以下を追加。 'django.contrib.humanize', 下記をINSTALLED_APPSの上に追加。これで3桁区切りになる。 NUMBER_GROUPING = 3 3桁区切りで表示させたいテンプレートの追記 htmlの冒 ...
  • 【メール認証】Django-allauthの実装方法とテンプレート編集【ID認証】

    ここに、Django-allauthの実装方法をまとめる。主にsettings.pyを操作することになる。 また、allauth付属のテンプレートではHTMLのみなのでテンプレート及びCSSによる装飾も付せて説明する。 はじめに django-allauthは外部ライブラリなので、pipコマンドでインストールする必要がある。 pip install django-allauth ユーザーIDとパスワードを使用した認証方法の実装 ユーザーIDとパスワードを ...
  • DjangoにPythonスクレイピングを実装した簡易検索エンジンの作り方【BeautifulSoup】

    DjangoにPythonスクレイピングを実装させるだけで簡易的な検索エンジンを作ることができる。 しかも、モデルの定義は不要でビューとテンプレートだけなので初心者の演習におすすめ。 流れ Djangoの環境構築、プロジェクトの作成等は割愛します。 アプリを作る urls.pyを修正 views.pyを作る テンプレートを作る スクレイピングのコードを作る views.pyを修正 テンプレートを修正 開発サーバーを起動 ...
  • Djangoビギナーが40分で掲示板アプリを作る方法

    公式のDjangoチュートリアルではよくわからない方向け。 対象読者は既にDjangoをインストール済み、Linux系コマンド習得済み、Python及びHTMLの基本構文を把握済みとする。 Djangoのインストールをまだしていない場合は下記コマンドで。 pip install django 注意事項 40分はあくまでも私見に基づく目安である点をご留意いただきたい。 流れ 以下、流れ。 プロジェクトを作る(5分) アプリを作る(5分) setti ...