何が新しいのジャンゴ3.1
Django 3.1は2020年8月初めにリリースされ、非同期ビューとミドルウェアのサポート、非同期テスト、すべてのサポートされているデータベースバックエンド(PostgreSQLだけではなく)、更新管理ページのJSONフィールドを含むいくつかの主要な新機能と多くのマイナーな改良が付属します.
あなたは本当に両方のdjangoとpythonの最新バージョンになるように努力する必要があります.これは、より速く、よりサポートされ、機能を積んだコードになります.アップグレードするには、新しい仮想環境を作成し、django 3.1をインストールし、テストスイートを実行します(はい、1つはありますか?)加えることによって
JJamo 3.1はPython 3.6、3.7、または3.8を必要とします.サポートされているPythonバージョンについては、Django prerequisites page . あなたがdjangoのバージョンとリリース方針に興味があるならばdownload page サポートされているバージョンのタイムラインと将来のLTS(長期サポート)リリースを示します.
更なる文脈のために、Djangoフェローカールトンギブソンによって主催されるDjangoチャットPodcastDjango Versions and Django Security Releases .
バージョン3.0では、django本格的に非同期の旅を始めたASGI サポート.3.1では、Djangoは現在、ビュー、ミドルウェア、およびテスト/テストクライアントと完全にasyicallyリクエストパスをサポートしています.
docsで提供された基本的な例は、半秒待ってからレスポンスを返すリクエストを行うことです.
より適切な例は、DjangoでURLを非同期で取得することですHTTPX , 人気の次世代バージョンrequests 図書館.
( Jsonfieldのサポート)models and forms 現在、すべてのdjangoサポートされてバックエンド︵Mariadb、MySQL、Oracle、およびSQLite︶だけでなく、PostgreSQLに拡張されました.これは完全なサポートを提供しますJSONField queries .
管理者は、現在大きなスクリーンでより簡単な釘打ちのために左側にサイドバーを持ちます.歴史的なパン粉パターンはまだ利用可能です.新しいサイドバーを無効にしたい場合はAdminSite.enable_nav_sidebar to
以下は古い管理ビューです.
そしてここでサイドバーとの新しい管理ビューがあります.
ジャンゴは使用から切り替えたos.path より現代的で簡潔にpathlib . を使用して新しいプロジェクトを作成する場合
ここでは、ジャンゴ3.0バージョンです.
The SECURE_REFERRER_POLICY デフォルトでは'同じ起源'になります.これは、ジャンゴチームがセキュリティを回避する多くのステップの一つです.することができます-とする必要がありますDjango deployment checklist プロジェクトを確実にするには、次のようにします.
多くの新機能は、広範囲に記載されているofficial release notes , これは十分にだけでなく、付属のdjango 3.1ドキュメントで読む価値があります.
すべての主要な新しいdjangoリリースはチーム努力です、そして、3.1は例外でありません.そして、リリースプロセスがスムーズに、そして、時間に確実にするために、大量の仕事のために共鳴します.特別な感謝は、async機能に関する彼の仕事とクロスdB Jsonfieldsを加えることのためです.
あなたがDjangoの継続的な発展を支持したいならばofficial fundraising page または、aになることによってGitHub Sponsor .
SECURE_REFERRER_POLICY
, そして、ずっと.The official release notes 標準的なリファレンスですが、このポストは、アップグレードのためのヒントと同様にハイライトのいくつかをカバーします.ハウツーとスタイル
あなたは本当に両方のdjangoとpythonの最新バージョンになるように努力する必要があります.これは、より速く、よりサポートされ、機能を積んだコードになります.アップグレードするには、新しい仮想環境を作成し、django 3.1をインストールし、テストスイートを実行します(はい、1つはありますか?)加えることによって
-Wa
完全な除数警告を表示するフラグ.(env) $ python -Wa manage.py test
あなたのプロジェクトでまだテストを持っていない場合は、まだ使用することができますpython -Wa manage.py runserver
警告を見る.参照official upgrade list もっとアドバイスを.JJamo 3.1はPython 3.6、3.7、または3.8を必要とします.サポートされているPythonバージョンについては、Django prerequisites page . あなたがdjangoのバージョンとリリース方針に興味があるならばdownload page サポートされているバージョンのタイムラインと将来のLTS(長期サポート)リリースを示します.
更なる文脈のために、Djangoフェローカールトンギブソンによって主催されるDjangoチャットPodcastDjango Versions and Django Security Releases .
非同期ビュー、ミドルウェア、テスト
バージョン3.0では、django本格的に非同期の旅を始めたASGI サポート.3.1では、Djangoは現在、ビュー、ミドルウェア、およびテスト/テストクライアントと完全にasyicallyリクエストパスをサポートしています.
docsで提供された基本的な例は、半秒待ってからレスポンスを返すリクエストを行うことです.
# views.py
async def my_view(request):
await asyncio.sleep(0.5)
return HttpResponse('Hello, async world!')
これは、WSGIまたはASGI モードは、最初に3.0で追加されました.より適切な例は、DjangoでURLを非同期で取得することですHTTPX , 人気の次世代バージョンrequests 図書館.
クロスdb
( Jsonfieldのサポート)models and forms 現在、すべてのdjangoサポートされてバックエンド︵Mariadb、MySQL、Oracle、およびSQLite︶だけでなく、PostgreSQLに拡張されました.これは完全なサポートを提供しますJSONField queries .
# models.py
from django.db import models
class SoccerInfo(models.Model):
data = models.JSONField()
SoccerInfo.objects.create(data={
'team': 'Liverpool FC',
'coaches': ['Klopp', 'Krawietz'],
'players': {'forwards': ['Salah', 'Firmino', 'Mané']},
})
SoccerInfo.objects.filter(
data__team='Liverpool',
data__coaches__contains='Klopp',
data__players__has_key='forwards',
).delete()
管理レイアウト
管理者は、現在大きなスクリーンでより簡単な釘打ちのために左側にサイドバーを持ちます.歴史的なパン粉パターンはまだ利用可能です.新しいサイドバーを無効にしたい場合はAdminSite.enable_nav_sidebar to
False
.以下は古い管理ビューです.
そしてここでサイドバーとの新しい管理ビューがあります.
パスリブ
ジャンゴは使用から切り替えたos.path より現代的で簡潔にpathlib . を使用して新しいプロジェクトを作成する場合
startproject
コマンド、自動的に生成settings.py
現在デフォルトpathlib
.ここでは、ジャンゴ3.0バージョンです.
# settings.py
import os
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
そして、ここに新しいJJango 3.1バージョンがあります.# settings.py
from pathlib import Path
BASE_DIR = Path(__file__).resolve(strict=True).parent.parent
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': BASE_DIR / 'db.sqlite3',
}
}
ポリシー
The SECURE_REFERRER_POLICY デフォルトでは'同じ起源'になります.これは、ジャンゴチームがセキュリティを回避する多くのステップの一つです.することができます-とする必要がありますDjango deployment checklist プロジェクトを確実にするには、次のようにします.
python manage.py check --deploy
.結論
多くの新機能は、広範囲に記載されているofficial release notes , これは十分にだけでなく、付属のdjango 3.1ドキュメントで読む価値があります.
すべての主要な新しいdjangoリリースはチーム努力です、そして、3.1は例外でありません.そして、リリースプロセスがスムーズに、そして、時間に確実にするために、大量の仕事のために共鳴します.特別な感謝は、async機能に関する彼の仕事とクロスdB Jsonfieldsを加えることのためです.
あなたがDjangoの継続的な発展を支持したいならばofficial fundraising page または、aになることによってGitHub Sponsor .
Reference
この問題について(何が新しいのジャンゴ3.1), 我々は、より多くの情報をここで見つけました https://dev.to/learndjango/what-s-new-in-django-3-1-320fテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol