導入
私たちの多忙な生活において、タスクを効果的に管理することは非常に重要であり、To Do リスト アプリケーションは、整理整頓を保つための優れたツールとなります。このブログ投稿では、Python の強力で多用途な Web フレームワークである Django を使用した To Do リスト アプリケーションの開発について説明します。 django-todoList というタイトルのこのプロジェクトは、ユーザーが日常のタスクをシームレスに作成、管理、追跡できるように設計されています。
前提条件
始める前に、以下のものがあることを確認してください。
Python がインストールされている (バージョン 3.8 以降が望ましい)。
Django がインストールされました。そうでない場合は、次のコマンドを使用してインストールできます。
pip install django
- Django の仕組みについての基本的な理解と、Python と HTML についての知識。
ステップ 1: プロジェクトのセットアップ
1.1 Django プロジェクトの作成
まず、次のコマンドを使用して新しい Django プロジェクトを作成します。
django-admin startproject mysite
プロジェクト フォルダーに移動します:
cd mysite
1.2 Django アプリを作成する
次に、プロジェクト内にアプリを作成します。これを todoList と呼びます:
python manage.py startapp todoList
ステップ 2: モデルを定義する
Django では、モデルを使用してデータの構造を定義します。 GetDone To-Do アプリの場合、タスクを表すモデルが必要です。
todoList/models.py に移動し、タスク モデルを定義します。
from django.db import models from django.contrib.auth.models import User class Task(models.Model): title = models.CharField(max_length=200) description = models.TextField() complete = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True) deadline = models.DateTimeField(null=True, blank=True) user = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.title
このモデルには、タイトル、説明、期限、各タスクの詳細を保存する完了などのフィールドが含まれています。また、ユーザー外部キーを介して各タスクをユーザーに関連付けます。
2.1 データベースの移行
モデルの準備ができたら、移行を実行してデータベースにこのモデルのテーブルを作成します。
python manage.py makemigrations python manage.py migrate
ステップ 3: フォームを作成する
タスクを作成および更新するためのユーザー入力を処理するフォームが必要です。 todoList/forms.py で、TaskForm を作成します:
from django import forms from .models import Task class TaskForm(forms.ModelForm): class Meta: model = Task fields = ['title', 'description', 'deadline', 'complete'] widgets = { 'title': forms.TextInput(attrs={'placeholder': 'Enter task title'}), 'description': forms.Textarea(attrs={'placeholder': 'Enter task description', 'rows': 4}), 'deadline': forms.DateTimeInput(attrs={'type': 'datetime-local'}), 'complete': forms.CheckboxInput(), } def clean_title(self): title = self.cleaned_data.get('title') if not title: raise forms.ValidationError('Title is required') return title def clean_description(self): description = self.cleaned_data.get('description') if not description: raise forms.ValidationError('Description is required') return description def clean_deadline(self): deadline = self.cleaned_data.get('deadline') if not deadline: raise forms.ValidationError('Deadline is required') return deadline
TaskForm は Django の ModelForm を使用して、タスク モデルのフォーム フィールドを自動的に作成します。
ステップ 4: ビューを定義する
次に、タスクの作成、更新、一覧表示などのユーザー リクエストを処理するビューを作成する必要があります。
todoList/views.py で、ビューを定義します。
from django.shortcuts import render, redirect from django.views.generic import ListView, CreateView, UpdateView, DeleteView from django.contrib.auth.views import LoginView from django.contrib.auth.mixins import LoginRequiredMixin from django.contrib.auth.forms import UserCreationForm from django.urls import reverse_lazy from .models import Task from .forms import TaskForm from django.contrib import messages from django.utils import timezone # Task List View class TodoListView(LoginRequiredMixin, ListView): model = Task context_object_name = 'tasks' template_name = 'task_list.html' def get_context_data(self, **kwargs): context = super().get_context_data(**kwargs) user_tasks = Task.objects.filter(user=self.request.user) context['tasks'] = Task.objects.filter(user=self.request.user) context['incomplete_tasks_count'] = user_tasks.filter(complete=False).count() # Count incomplete tasks context['now'] = timezone.now() return context # Task Create View class TaskCreate(LoginRequiredMixin, CreateView): model = Task form_class = TaskForm template_name = 'todoList/task_create.html' success_url = reverse_lazy('todoList') def form_valid(self, form): form.instance.user = self.request.user messages.success(self.request, 'Task created successfully!') return super(TaskCreate, self).form_valid(form) # Task Update View class TaskUpdate(LoginRequiredMixin, UpdateView): model = Task form_class = TaskForm template_name = 'todoList/task_update.html' success_url = reverse_lazy('todoList') def form_valid(self, form): messages.success(self.request, 'Task updated successfully!') return super(TaskUpdate, self).form_valid(form) # Task Delete View class TaskDelete(LoginRequiredMixin, DeleteView): model = Task context_object_name = 'task' template_name = 'todoList/task_delete.html' success_url = reverse_lazy('todoList') def dispatch(self, request, *args, **kwargs): response = super().dispatch(request, *args, **kwargs) if response.status_code == 302: messages.success(self.request, 'Task deleted successfully!') return response # User Registration View class RegisterView(CreateView): form_class = UserCreationForm template_name = 'todoList/register.html' success_url = reverse_lazy('todoList') def form_valid(self, form): response = super().form_valid(form) # Log the user in after successful registration from django.contrib.auth import login login(self.request, self.object) messages.success(self.request, 'Registration successful! Welcome!') return response # Login View class CustomLoginView(LoginView): template_name = 'todoList/login.html' fields = '__all__' redirect_authenticated_user = True def get_success_url(self): messages.success(self.request, 'You have logged in successfully!') return reverse_lazy('todoList')
-TodoListView: ログインしているユーザーのすべてのタスクをリストします。
-TaskCreate: タスクの作成を処理します。
-TaskUpdate: ユーザーがタスクを更新できるようにします。
-TaskDelete: タスクを削除するための確認ページを提供します。
LoginRequiredMixin は、ログインしたユーザーのみがこれらのビューにアクセスできるようにします。
ステップ 5: URL を構成する
todoList/urls.py で、URL をそれぞれのビューにマップします。
pip install django
これらの URL パターンは、各ビューを特定の URL にマップします。たとえば、タスク リストはアプリのルート URL に表示され、ユーザーは特定の URL にアクセスしてタスクを作成、編集、削除できます。
ステップ 6: テンプレートを作成する
ビューをレンダリングするために次の HTML テンプレートを作成します:
6.1 基本.html
基本テンプレートは、すべてのページに一貫したレイアウトを提供します:
django-admin startproject mysite
ステップ 8: ユーザー認証を追加する
views.py では、Django の組み込みユーザー認証ビューを使用して、ユーザーの登録とログインを処理できます。たとえば、UserCreationForm を使用して、ユーザーがサインアップできるようにすることができます。
cd mysite
ステップ 8: サーバーを実行する
すべてのセットアップが完了したら、サーバーを実行できます。
python manage.py startapp todoList
http://127.0.0.1:8000/todoList にアクセスして、To-Do リスト アプリの動作を確認してください。
mysite フォルダー内の settings.py と urls.py について
設定.py
settings.py ファイルは、すべての Django プロジェクトの重要な部分です。これには、データベース設定、インストールされているアプリ、ミドルウェア、静的ファイル構成など、プロジェクトの構成設定が含まれています。このファイルはプロジェクトの動作を制御し、Django がさまざまなコンポーネント間の点を結びつけることを可能にします。
GetDone To-Do リスト アプリの settings.py の主要な設定の概要を以下に示します。
settings.py の主要なセクション:
インストールされているアプリ: INSTALLED_APPS リストには、プロジェクトで使用されるすべてのアプリを登録します。例:
from django.db import models from django.contrib.auth.models import User class Task(models.Model): title = models.CharField(max_length=200) description = models.TextField() complete = models.BooleanField(default=False) created = models.DateTimeField(auto_now_add=True) deadline = models.DateTimeField(null=True, blank=True) user = models.ForeignKey(User, on_delete=models.CASCADE) def __str__(self): return self.title
ここでは、ユーザー認証、管理パネル、静的ファイル用に Django が提供するデフォルト アプリに加えて、タスクを管理するアプリである todoList を追加しました。
URL.py
Django では、urls.py ファイルがビューへの HTTP リクエストのルーティングを処理します。ここで、URL パターン (/tasks/、/login/ など) を、それらを処理する対応するビューにマップします。
mysite/urls.py には、通常、プロジェクト全体の URL を含めて、アプリレベルの urls.py ファイルにリンクします。
GetDone アプリでの urls.py は次のようになります:
urls.py の主要なセクション:
プロジェクト レベルの urls.py (mysite/urls.py): mysite フォルダー内の urls.py ファイルは、Django プロジェクト全体のメイン ルーターです。これには、管理パネル、認証、アプリの特定の URL へのリンクの URL が含まれます。以下に例を示します:
pip install django
path('admin/', admin.site.urls): この行には Django 管理パネルが含まれています。
path('accounts/', include('django.contrib.auth.urls')): これには、ログイン、ログアウト、パスワード管理のための組み込みの認証 URL が含まれます。
path('', include('todoList.urls')): これにはアプリ固有の URL (todoList/urls.py で定義) が含まれるため、ユーザーはタスクやその他の機能をナビゲートできます。
アプリレベルの urls.py (todoList/urls.py): このファイルは、特定の URL を todoList アプリ内のビューにマップします。これには、タスクの表示、タスクの作成、およびその他のタスク関連アクションのためのパスが含まれています。例:
django-admin startproject mysite
TodoListView.as_view(): このビューには、ログイン ユーザーのすべてのタスクがリストされます。
TaskCreate.as_view(): このビューはタスク作成フォームを処理します。
TaskUpdate.as_view(): このビューはタスク更新フォームを処理します。
TaskDelete.as_view(): このビューは、タスク削除確認ページを処理します。
ファイル間の通信
Django のアーキテクチャにより、さまざまなファイルとコンポーネント間のスムーズな通信が可能になります。
URL とビュー:
urls.py は、タスクの作成やリストの表示などのビューに URL をマップします。ビューは views.py.
で定義されます。モデルとビュー:
ビューは、モデル (models.py で定義) と対話して、データ (タスク) を取得および操作します。たとえば、TodoListView では、ビューは Task.objects.filter(user=self.request.user) を使用してログイン ユーザーに関連付けられたタスクを取得します。
フォームとビュー:
フォーム (forms.py の TaskForm など) はユーザー入力を処理し、モデルと対話してデータを検証して保存します。
テンプレート:
テンプレートは HTML で最終出力をレンダリングし、ビューから渡されたデータを表示し、フォームを介したユーザー入力を処理します。
結論
これらの手順により、Django を使用して完全に機能する ToDo リスト アプリを構築できました。ユーザー認証、タスク管理 (作成、編集、削除) を実装し、Django の MVC (MTV) アーキテクチャがモデル、ビュー、テンプレート、URL 間のスムーズな通信をどのように促進するかを学びました。このガイドは、将来的により複雑な Django アプリケーションを構築するための強固な基盤として機能します。
アプリケーションの完全なコードは、
で複製できます。
cd mysite
コーディングを楽しんでください! ?
以上がGet Done ✅ : Django To Do リストを作成するためのステップバイステップ ガイドの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Pythonは学習と使用が簡単ですが、Cはより強力ですが複雑です。 1。Python構文は簡潔で初心者に適しています。動的なタイピングと自動メモリ管理により、使いやすくなりますが、ランタイムエラーを引き起こす可能性があります。 2.Cは、高性能アプリケーションに適した低レベルの制御と高度な機能を提供しますが、学習しきい値が高く、手動メモリとタイプの安全管理が必要です。

PythonとCは、メモリ管理と制御に大きな違いがあります。 1。Pythonは、参照カウントとガベージコレクションに基づいて自動メモリ管理を使用し、プログラマーの作業を簡素化します。 2.Cには、メモリの手動管理が必要であり、より多くの制御を提供しますが、複雑さとエラーのリスクが増加します。どの言語を選択するかは、プロジェクトの要件とチームテクノロジースタックに基づいている必要があります。

科学コンピューティングにおけるPythonのアプリケーションには、データ分析、機械学習、数値シミュレーション、視覚化が含まれます。 1.numpyは、効率的な多次元配列と数学的関数を提供します。 2。ScipyはNumpy機能を拡張し、最適化と線形代数ツールを提供します。 3. Pandasは、データ処理と分析に使用されます。 4.matplotlibは、さまざまなグラフと視覚的な結果を生成するために使用されます。

PythonまたはCを選択するかどうかは、プロジェクトの要件に依存するかどうかは次のとおりです。1)Pythonは、簡潔な構文とリッチライブラリのため、迅速な発展、データサイエンス、スクリプトに適しています。 2)Cは、コンピレーションと手動メモリ管理のため、システムプログラミングやゲーム開発など、高性能および基礎となる制御を必要とするシナリオに適しています。

Pythonは、データサイエンスと機械学習で広く使用されており、主にそのシンプルさと強力なライブラリエコシステムに依存しています。 1)Pandasはデータ処理と分析に使用され、2)Numpyが効率的な数値計算を提供し、3)SCIKIT-LEARNは機械学習モデルの構築と最適化に使用されます。これらのライブラリは、Pythonをデータサイエンスと機械学習に理想的なツールにします。

Pythonを1日2時間学ぶだけで十分ですか?それはあなたの目標と学習方法に依存します。 1)明確な学習計画を策定し、2)適切な学習リソースと方法を選択します。3)実践的な実践とレビューとレビューと統合を練習および統合し、統合すると、この期間中にPythonの基本的な知識と高度な機能を徐々に習得できます。

Web開発におけるPythonの主要なアプリケーションには、DjangoおよびFlaskフレームワークの使用、API開発、データ分析と視覚化、機械学習とAI、およびパフォーマンスの最適化が含まれます。 1。DjangoandFlask Framework:Djangoは、複雑な用途の迅速な発展に適しており、Flaskは小規模または高度にカスタマイズされたプロジェクトに適しています。 2。API開発:フラスコまたはdjangorestFrameworkを使用して、Restfulapiを構築します。 3。データ分析と視覚化:Pythonを使用してデータを処理し、Webインターフェイスを介して表示します。 4。機械学習とAI:Pythonは、インテリジェントWebアプリケーションを構築するために使用されます。 5。パフォーマンスの最適化:非同期プログラミング、キャッシュ、コードを通じて最適化

Pythonは開発効率でCよりも優れていますが、Cは実行パフォーマンスが高くなっています。 1。Pythonの簡潔な構文とリッチライブラリは、開発効率を向上させます。 2.Cのコンピレーションタイプの特性とハードウェア制御により、実行パフォーマンスが向上します。選択を行うときは、プロジェクトのニーズに基づいて開発速度と実行効率を比較検討する必要があります。


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

SublimeText3 Linux 新バージョン
SublimeText3 Linux 最新バージョン

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

SAP NetWeaver Server Adapter for Eclipse
Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。
