Django はバージョン 1.6 以降、独自のコメントの使用を放棄したようです。具体的な理由は調査されていませんが、Django の内部モジュールを使用して、つまり、forms モジュールの助けを借りてコメント機能を実装することもできるようになりました。 . これは私の小さな例です。
環境準備
•オペレーティングシステム: Windows 7 64-bit Ultimate バージョン
•IDE: PyCharm 2016.1
•Python:2.7.11
•Django:1.9.6
デザイン
いわゆるデザインとはコメントを参照しています機能に関係する基礎となるモデルを実装します。ここでの私の簡単なデザインは次のとおりです。自分のアイデアに従って自由に設定できます。私の設定については、models.py ファイルを参照してください。
from __future__ import unicode_literals from django.contrib import admin from django.db import models from django import forms # Create your models here. TOPIC_CHOICES = ( ('level1','Bad'), ('level2','SoSo'), ('level3','Good'), ) class RemarkForm(forms.Form): subject = forms.CharField(max_length=100,label='Mark Board') mail = forms.EmailField(label='email') topic = forms.ChoiceField(choices=TOPIC_CHOICES,label='choose one topic') message = forms.CharField(label='content for mark',widget=forms.Textarea) cc_myself = forms.BooleanField(required=False,label='watch this tie') class Remark(models.Model): subject = models.CharField(max_length=100) mail = models.EmailField() topic = models.CharField(max_length=100) message = models.CharField(max_length=300) cc_myself = models.BooleanField() def __unicode__(self): return self.subject class Meta: ordering = ['subject'] admin.site.register([Remark,])
models.py ファイル。今回の操作には Web フォームが含まれるため、フォームから Clean_data を取得しやすくするために、モデル クラスごとに Form フォーム クラスを作成するのが最善です。
URL マッピング ファイル urls.py
このファイルは次のように比較的単純です:
"""FormRelative URL Configuration The `urlpatterns` list routes URLs to views. For more information please see: https://docs.djangoproject.com/en/1.9/topics/http/urls/ Examples: Function views 1. Add an import: from my_app import views 2. Add a URL to urlpatterns: url(r'^$', views.home, name='home') Class-based views 1. Add an import: from other_app.views import Home 2. Add a URL to urlpatterns: url(r'^$', Home.as_view(), name='home') Including another URLconf 1. Import the include() function: from django.conf.urls import url, include 2. Add a URL to urlpatterns: url(r'^blog/', include('blog.urls')) """ from django.conf.urls import url from django.contrib import admin from app.views import * urlpatterns = [ url(r'^admin/', admin.site.urls), url(r'^remark/$',reamark), ] 视图层views.py
このファイルはマッピング ファイルに対応して表示されるビューを決定するため、比較が重要です。
from django.shortcuts import render from app.models import * from django.http import * # Create your views here. # subject = models.CharField(max_length=100) # mail = models.EmailField() # topic = models.CharField(max_length=100) # message = models.CharField(max_length=300) # cc_myself = models.BooleanField() def reamark(request): if request.method =="POST": form = RemarkForm(request.POST) if form.is_valid(): myremark = Remark() myremark.subject=form.cleaned_data['subject'] myremark.mail = form.cleaned_data['mail'] myremark.topic = form.cleaned_data['topic'] myremark.message = form.cleaned_data['message'] myremark.cc_myself = form.cleaned_data['cc_myself'] myremark.save() # return HttpResponse("Publish Success!") else: form = RemarkForm() ctx = { 'form':form, 'ties':Remark.objects.all() } return render(request,'message.html',ctx)
templates/message.html
テンプレートを使用すると、データ量が大幅に削減され、プレゼンテーション層でのデータの分離がより柔軟に実現され、モジュール間の結合が軽減されます。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <form action="." method="post"> {% for field in form %} {% csrf_token %} <div> {{ field.label_tag }}:{{ field }} {{ field.errors }} </div> {% endfor %} <div> <input type="submit" value="Remark"> </div> </form> <hr> {% for tie in ties %} <div> <ul> <li>{{ tie.subject }}</li> <li>{{ tie.mail}}</li> <li>{{ tie.topic}}</li> <li>{{ tie.message }}</li> <li>{{ tie.cc_myself }}</li> </ul> <hr> </div> {% endfor%} </body> </html>
なお、再発行タグとテンプレート変数はviews.pyのremarkメソッド内で宣言されているので、そのまま利用することができます。
データベースを初期化します
ここではsqliteデータベースが使用されており、settings.pyファイルの構成は次のとおりです
# Database # https://docs.djangoproject.com/en/1.9/ref/settings/#databases DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
次に、ターミナル環境で次のコマンドを入力します:
// 创建数据库表结构 python manage.py makemigrations python manage.py migrate // 按照提示进行操作即可,目的是为了创建一个超级管理员 python createsuperuser //在自带的开发服务器上运行我们的项目 python manage.py runserver
確認
ここで、ブラウザに
127.0.0.1:8000/adminと入力します
、次のように表示されます
次に、127.0.0.1:8000/remarkと入力します
データベース側:
このようにして、インターフェースの美化がないことを除いて、残りは完了です。
まとめ
これは非常に単純な例ですが、コメント時間がないので非常に恥ずかしい、モデル設計の無理など、私自身の概念的な問題も発見しました。
その後、
if request.method =="POST": form = RemarkForm(request.POST) if form.is_valid(): myremark = Remark() myremark.subject=form.cleaned_data['subject'] myremark.mail = form.cleaned_data['mail'] myremark.topic = form.cleaned_data['topic'] myremark.message = form.cleaned_data['message'] myremark.cc_myself = form.cleaned_data['cc_myself'] myremark.save() # return HttpResponse("Publish Success!") else: form = RemarkForm() ctx = { 'form':form, 'ties':Remark.objects.all() } return render(request,'message.html',ctx)
このコード、フォーム内の対応するアクションは、フォームがこのページに送信され、フォームデータに対するコメントが実現されることを意味します。これは非常に賢明です。また、Django のこの機能を使用することにはもう 1 つの利点があります。それは、ページを手動で更新しなくてもコメントの非同期読み込みを実現できることです。
最後に、Remark モデルとモデル内の RemarkForm フォーム属性の一貫性です。これには特に注意する必要があります。
今日はここまでです。私の能力が平均的なので、コードやロジックに間違いがあれば、どなたでも私を批判して修正してください。
以上がこの記事の全内容です。皆さんの学習に役立つことを願っています。また、皆さんも PHP 中国語 Web サイトをサポートしていただければ幸いです。
フォームを使用してコメント機能を実装する Python Django に関するその他の関連記事については、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衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 中国語版
中国語版、とても使いやすい

MinGW - Minimalist GNU for Windows
このプロジェクトは osdn.net/projects/mingw に移行中です。引き続きそこでフォローしていただけます。 MinGW: GNU Compiler Collection (GCC) のネイティブ Windows ポートであり、ネイティブ Windows アプリケーションを構築するための自由に配布可能なインポート ライブラリとヘッダー ファイルであり、C99 機能をサポートする MSVC ランタイムの拡張機能が含まれています。すべての MinGW ソフトウェアは 64 ビット Windows プラットフォームで実行できます。

ドリームウィーバー CS6
ビジュアル Web 開発ツール

mPDF
mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境
