django
【Django】Ajax(jQuery)でロングポーリングを実装させる【チャットサイトの開発に】
【Django】models.pyにて、オリジナルのバリデーション処理を追加する【validators】【正規表現が通用しない場合等に有効】
【Django】DateTimeFieldに自動的に現在時刻を入れるには、auto_now_addもしくはauto_nowフィールドオプションを指定【新規作成時・編集時の時刻】【※編集不可】
【Django】未認証ユーザーをログインページにリダイレクトする【LoginRequiredMixinもしくは@login_required】
UbuntuにDjangoをデプロイする【PostgreSQL+Nginx、Virtualenv使用】
【Django】管理サイト(admin)のログを削除する【DBの使用量削減に】
Djangoの管理サイトは自動的に操作のログを取るようになっている。 そのログはDBに記録されているため、Herokuの無料プランなどの1万行しかないDBであれば、死活問題になる。 そこで、管理サイトのログをDBから消す。下記のようにすればよい。 from django.shortcuts import render from django.views import View from django.contrib.admin.models import LogEntry class IndexView(View) LogEntry.objects.all().delete() ## 以下略 ## ...【Django】Ajaxで複数枚の画像を一回のリクエストでアップロードする。
【Python】GoogleのISBNのAPIを使い、書籍の情報を手に入れる
GoogleのISBN検索ができるAPIを使うことで、書籍の情報を簡単に手に入れることができる。 もちろん、書籍のサムネイルも取得可能。スクレイピングではないので、サイトの変化に合わせて手直しが必要になることもない。 アカウントの登録も不要 #! /usr/bin/env python3 # -*- coding: utf-8 -*- import requests try: result = requests.get("https://www.googleapis.com/books/v1/volumes?q=isbn:9784873117782") except: print("通信エラー") else: #返却されたJSONを辞書型に変換する。 data = result.json() print(data) print(data["items"][0]["volumeInfo"]) #書籍情報を手に入れる。 print(data["items"][0]["volumeInfo"]["title"]) print(data["items"][0]["volumeInfo"]["publishedDate"]) print(data["items"][0]["volumeInfo"]["authors"]) print(data["items"][0]["volumeInfo"]["description"]) print(data["items"][0]["volumeInfo"]["imageLinks"]["thumbnail"]) ...【Django】星の平均をアイコンで表示させる【3.5の時、三星と半星で表示】
通販サイトなどでよくある、星の平均をアイコンで表示する。 モデル 2つのメソッドを追加する。平均スコアを出力するメソッド。少数だけ取り出し、それを元に1星、半星、無星を判定するメソッド。 from django.db import models from django.core.validators import MinValueValidator,MaxValueValidator from django.db.models import Avg class Topic(models.Model): comment = models.CharField(verbose_name="コメント",max_length=2000) def avg_star_score(self): reviews = Review.objects.filter(topic=self.id).aggregate(Avg("star")) if reviews["star__avg"]: return reviews["star__avg"] else: return 0 def avg_star_icon_few(self): reviews = Review.objects.filter(topic=self.id).aggregate(Avg("star")) avg = reviews["star__avg"] #平均スコアなしの場 ...