取り敢えず | python3Xのブログ

python3Xのブログ

ここでは40代、50代の方が日々の生活で役に立つ情報や私の趣味であるプログラム、Excelや科学に関する内容で投稿する予定です。

今回取り上げるのは新聞の購読者のデータ化です

①ユーザーID(プライマリーキー)

②購読者名

③購読者住所

④銘柄

⑤価格

⑥契約開始月

⑦契約終了月

(今回①と③は省略しています)

 

購読者名の一部を入力すると該当する購読者のデータリストが表示されます

また、購読開始月と購読終了月に求めたい月の数値を入力すると

その月の購読者リストが出てきます

 

また、今回はデータベースを簡易版の『SQlite』から『MySQL』に変更しました

 

 

これを元に(まだまだヨチヨチ状態ですが)

動的 HTML & CSS 切り替えを学ぶ必要があると思います

昔、見た中にループ +{ % XXXXX % } といったデータ表示方法があったような記憶があります

 

これに関する書籍を探しましたが、今のところ見つかっていません

別々に学習しなければいけないかも知れませんが、あまり無駄はしたくありません

『枝葉』は今は要りません. 内容のある『実』が欲しいのです. 

その後、枝葉も必要なら勉強します

 

search / models.py

 

from django.db import models
class Manage_test(models.Model):
    user_name = models.CharField(verbose_name='氏名', max_length=20)
    paper_name = models.CharField(verbose_name='銘柄',max_length=20)
    price = models.IntegerField(verbose_name='価格', null=True)
    contract_start = models.IntegerField(verbose_name='開始', null=True)
    contract_end = models.IntegerField(verbose_name='終了', null=True)
 
config / settings.py
・・・
 
search / serializers.py
 
from rest_framework import serializers
from django_filters import rest_framework as filters
from search.models import Manage_test
class Manage_testSerializer(serializers.ModelSerializer):
    class Meta:
        model = Manage_test
        fields = ('user_name', 'paper_name', 'price', 'contract_start', 'contract_end')
class SearchManage_testFilter(filters.FilterSet):
    user_name = filters.CharFilter( lookup_expr='contains')
    contract_start = filters.NumberFilter(lookup_expr='gte')
    contract_end = filters.NumberFilter(lookup_expr='lte')
   
    class Meta:
        model = Manage_test
        fields = ('user_name', 'paper_name', 'price', 'contract_start', 'contract_end')
 
search / views.py

 

from rest_framework import viewsets
from .models import Manage_test
from .serializers import Manage_testSerializer, SearchManage_testFilter

class Manage_testViewSet(viewsets.ModelViewSet):
    queryset =Manage_test.objects.all()
    serializer_class = Manage_testSerializer
class SearchManage_testViewSet(viewsets.ModelViewSet):
    queryset = Manage_test.objects.all()
    serializer_class = Manage_testSerializer
    filter_class = SearchManage_testFilter
 
search /urls.py
 
from rest_framework import routers
from .views import Manage_testViewSet, SearchManage_testViewSet
router = routers.DefaultRouter()
router.register(r'all_manages', Manage_testViewSet)
router.register(r'manage', SearchManage_testViewSet)
urlpatterns = router.urls
 
config / urls.py
 
from django.conf.urls import url, include
from django.contrib import admin
from search.urls import router as search_router
from search import views
urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^search/', include(search_router.urls)),
]