diadia

興味があることをやってみる。自分のメモを残しておきます。

Django

class についてちょっと整理する

models.pyにでclassを設定する目的はデータベースを作るために行われる。 具体的にはテーブルのカラムを定めること。 そしてデータが入れられればデータベースとなる。models.py class Blog(models.Model): title = models.CharField(max_length=30) content…

セッションについてのメモ

色々なコードが一体何を表すのか分かっていないので調べたものはメモとして残す。views.pyにて ページに接続するたびにat以降が変わる print(request.session) <django.contrib.sessions.backends.db.SessionStore object at 0x10dc0aa90>print(request.session.id) AttributeError: 'SessionStore' object has no attribute 'id'セッ</django.contrib.sessions.backends.db.sessionstore>…

サーチ機能を実装する

データベースからブログの記事内容だったり、商品を検索して結果を表示したい。その場合には検索キーワードに合致する結果を表示する必要がある。 キーワードに合致するものだけ抽出する方法は、objects.filter()を使えば解決できる。 結果を表示するにはLis…

urls.pyのincludeに変更点あり

path("search/", include("search.urls", namespace="search")) と記述したところエラーが出てきた。今回は path("search/", include(("search.urls", "search"))) これで対応しました。 詳しいことはここにあり。 Django2.0のプロジェクトのurls.pyにおける…

templates cssやjsをbase.htmlに組み込む方法

base.htmlにcssやjsなどBootstrapの機能を追加する。 方法はどうすればいいのか?前提条件 base.htmlにはbootstrapのコードを書かず、別にcss.html,js.htmlを準備する。_________________________________解決案 {% includ…

templates にbase.htmlを備える

pythonは誰が見ても読みやすくなるように作られている。そしてそれを実現するためにもコードをスッキリ書くことが求められる。可読性が高いものはメンテナンスしやすくなるメリットを享受できる。同じ内容を二度も三度も書くのは避けるべきだ。 htmlに焦点を…

slugを使って詳細ページurlの変更

urlを任意に変更する方法はどうすればよいのか? urls.py ではurlpatterns = [ path("blog/", BlogDetailView) ,...] の方式でurlを設定しているけれども、'bog/任意の文字列' という形で決めたい場合どうすればいいのか?参考url 【django2.0】便利なパスコ…

admin.pyメモ まとめ

技法1 admin の表示を少し変える やりたいことmodels.pyで規定したmodelの要素はadminページで一覧で確認することが出来ない。 adminページ上で任意の項目を一覧表示できるようにするにはどうしたら良いのか?例えばmodelであるBlogにtitle ,description, pr…

任意の情報だけを表示させる方法(ListView)

問題点例えば、ブログの下書きと公開記事があるとする。 これを任意に表示させるようにしたい。 具体的にはBooleanFieldを使ってチェックマークをつけたものだけ下書きとして集めて下書き一覧ページを作りたい。 条件としてはListViewで表示させること。今回…

django detailページ書き方(views.py)

詳細ページの書き方は複数ある。 detailviewを使って速く簡単に作ってしまう方法やrenderを使ってどのようなプロセスで動くか分かる方法もある。 (参考) ブラックボックス化を避けるためrenderをベースとして、データベースにアクセスするような動きを見せな…

get_object_or_404 detailページにつけるやり方

全然分かってないのでメモ。 ドキュメント https://docs.djangoproject.com/ja/2.0/topics/http/shortcuts/#get-object-or-404Calls get() on a given model manager, but it raises Http404 instead of the model's DoesNotExist exception. 引数はklass, *…

ListViewの内容を一覧表示させる方法

よく忘れるのでメモ。List_Viewで表示させる方法は、いくつかあって簡単な方法を記録する。{{ object_list }} こうすると表示は <QuerySet,> となってしまう。これを{% for obj in object_list %} {{ obj.title }} {{ obj.contents }} {% endfor %} こうす…

settings.pyまとめ

Django Static file の設定方法(settings.py) - diadia static fileを表示させる方法 - diadia

models.pyまとめ

関連記事 ForeignKeyフィールドのcreate models.pyを初めて使う場合の粗すぎる大枠Django model.pyを初めて使う人向けに - diadia field()のオプションについて概要:()の中身の種類 https://docs.djangoproject.com/ja/2.1/ref/models/fields/#field-options…

Django Static file の設定方法(settings.py)

settings.py で設定する項目 STATIC_URL = '/static/' MEDIA_URL = '/media/" STATICFILES_DIR =[ os.path.join(BASE_DIR, "static_xxx")] STATIC_ROOT =os.path.join(os.path.dirname(BASE_DIR), "static_yyy",static_root) MEDIA_ROOT =os.path.join(os.pa…

ユーザ登録(sign up)機能を作る

どうやってユーザを作成するか。 とりあえず作り方のアプローチとしては2通りある。 djangoビルトインのUserCreationFormを使う方法 Djangoの認証システムを使用する | Django documentation | Djangoforms.pyから作成する方法(自作) 自作する方法を前半で…

forms.pyに使うlabelの働き

labelの働きがわからなかった。 htmlを学習した現在働きが同じだと思われる。まずhtmlの使い方を記述する。 <form> <label for="fullname">お名前</label> <input id="fullname" type="text" name="name"> <label for="passwd">パスワード</label> <input id="passwd" type="password" name="password"> <button type="submit"> ログイン</button> </form> htmlをこのように記述すると、入力欄(この場合…

ユーザーログイン機能をdjangoプロジェクトに実装する/ユーザー認証の仕組み

ユーザーログイン機能をdjangoプロジェクトに実装する 最初に主要ファイルにどのように書けばユーザーログイン実現するかを書く 次にユーザー認証の仕組みを書く ユーザーログイン実現の書き方編集ファイルはこれらになる。 forms.py views.py urls.py login…

formの扱い方 まとめ

フォームについて リンク先forms.pyに使うlabelの働き forms.py外で定めなければならないもの formの入力データを返す方法(cleaned_data) フォームにはforms.pyを使う方法とformのhtmlをテンプレートに挿入する方法がある。 ①forms.pyについて記載する。 fo…

Django ウェブアプリケーション内のPOSTされたデータを表示させる

必要なことはviews.pyにてdef と return の間に以下の内容を追加するだけで良い。 if request.method == "POST": print(request.POST) これだけでターミナルに表示されるようになる。しかしながらこれだけではターミナルに入力されたデータがどのようなもの…

django postgresqlの設定

概要 改正版 centos7にpostgresqlを入れてdjangoを動かす場合を想定している。 djangoでpostgresqlを使うためにdjangoのsettings.pyにpostgresqlのデータベースの諸情報を登録する手続きを取らなければならない。そしてそれは、 サーバにpostgresqlをインス…

django startproject ディレクトリの影響 について

ディレクトリ構造について説明する。src chiaki$ django-admin startproject hoge .src chiaki$ django-admin startproject hoge があり、両者の違いはdjangoを現在のディレクトリに備え付けるか否かの違いになる。前者は現在のディレクトリに備え付ける。だ…

django リダイレクトについて

URL dispatcher — Django 1.4.6 documentation クラスベースビューには、データ表示系のもの(ListViewやDetailView)とデータベース編集系のもの(CreateView,Updateview,DeleteView)がある。 データベース編集系には一種の特徴がある。フォームにデータ入力し…

UpdateView 使い方メモ

前回CreateViewについてどう使うのか記したが、全く同じと考えて良い。 CreateView 使い方メモ - diadia

クラスベースビューでテンプレート名を指定する

クラスベースビューでテンプレート名を指定させる場合 以下のような指定で済む template_name = "blog/blog_hoge.html" とすればよい template_nameはどんなメリットが有るのか。 クラスベースビューを使う場合、テンプレートの名前は指定される。だからテン…

Django リンクについて

ページに飛ばす方法 公式 >|python| #urls.pyのnameを使う場合 <a href="{% url 'ListView-NAME' %}"> 一覧ページへ </a> #urls.pyのnameを使わない場合 <a href="/blog/{{ object.url }}"> 一覧ページへ </a> ||< htmlの基本リンクの作り方 <a href="hoge..."> hoge </a> ページから詳細ページに飛ばす方法 >|python| {{ for a in object_list }}<a href="{% url 'wawawa' a.id %}">{{ a.ho…</a>

クラス別汎用ビュー DeleteView

目的 既入力したデータを消去するところ 設定方法 views.py from .models import Blog from django.views.generic import DeleteView class BlogDeleteView(DeleteView): models = Blog success_url = reverse_lazy("hoge") urls.py url_patterns= ... path("<int:pk></int:pk>…

クラスベースジェネリックビュー大枠

クラス別汎用ビューは以下の種類がある。 リストビュー :データベース一覧表示 ディテイルビュー :データベースIDごとに表示 クリエイトビュー :データ入力 アップデートビュー :データ変更 フォームビュー? デリートビュー :データ消去 テンプレート…

CreateView 使い方メモ

クラスベースビュー大枠 - diadia 上記で分類したようにCreateViewは、ListViewやDetailViewと違いデータベースに情報を入力するタイプのものだ。 そういうわけで気になったところをメモしておく。 まずListViewとDetailviewとCreateViewの相違点はどこにあ…

django htmlの継承

htmlの継承やhtmlファイルをパーツに分けて管理するには何やらいろいろあるみたいで、頭がこんがらがっている。 {% block body %} {% endblock %} {% include "hoge.html" %} {% extends "hoge.html" %} これらはどのように使い分けているのか。 htmlの重複…