Rumah pembangunan bahagian belakang Tutorial Python Evolusi versi Django: dari 1.x hingga 3.x, ketahui tentang ciri dan peningkatan baharu

Evolusi versi Django: dari 1.x hingga 3.x, ketahui tentang ciri dan peningkatan baharu

Jan 19, 2024 am 09:46 AM
Versi django Penambahbaikan fungsi

Evolusi versi Django: dari 1.x hingga 3.x, ketahui tentang ciri dan peningkatan baharu

Django ialah rangka kerja web yang ditulis dalam Python Ciri utamanya ialah pembangunan pantas, pengembangan mudah, kebolehgunaan semula yang tinggi, dsb. Sejak pelancaran pertamanya pada tahun 2005, Django telah berkembang menjadi rangka kerja pembangunan web yang berkuasa.

Semakin masa berlalu, versi Django sentiasa dikemas kini. Artikel ini akan memberikan pemahaman yang mendalam tentang evolusi versi Django, perubahan daripada 1.x kepada 3.x, memperkenalkan ciri baharu, penambahbaikan dan perubahan yang memerlukan perhatian serta memberikan contoh kod terperinci.

  1. Versi Django 1.x

Versi Django 1.x ialah versi awal Django, termasuk dari 1.0.1 hingga 1.11.29. Dalam versi ini, Django sudah mempunyai banyak fungsi asas, seperti:

a Menggunakan ORM untuk operasi pangkalan data

ORM ialah komponen teras Django. Ia membolehkan pembangun menggunakan kod Python untuk mengendalikan pangkalan data tanpa terus menggunakan pernyataan SQL. ORM menjadikan operasi lebih mudah dan lebih intuitif. Contoh mudah:

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

class Author(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

class Entry(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateTimeField()
    mod_date = models.DateTimeField()
    authors = models.ManyToManyField(Author)
    n_comments = models.IntegerField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()
Salin selepas log masuk

Dalam contoh di atas, kami menentukan tiga model data, Blog, Pengarang dan Entri, yang semuanya diwarisi daripada model.Model. Atribut kelas ini sepadan dengan medan dalam jadual pangkalan data Contohnya, kelas Blog mempunyai dua medan: nama dan slogan, yang digunakan untuk menyimpan nama blog jenis rentetan dan slogan. Semasa mentakrifkan model data, Django akan menjana jadual pangkalan data yang sepadan secara automatik, menambah, memadam, mengubah suai dan operasi pertanyaan serta ORM API.

b. Urus URL secara automatik

Dalam versi Django 1.x, kami hanya perlu menulis fungsi paparan untuk mengendalikan permintaan HTTP, dan tidak perlu mengurus URL sendiri secara manual. Django secara automatik akan memetakan permintaan kepada fungsi paparan yang sepadan berdasarkan penghalaan URL yang dikonfigurasikan. Contohnya:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
    url(r'^(?P<question_id>[0-9]+)/$', views.detail, name='detail'),
    url(r'^(?P<question_id>[0-9]+)/results/$', views.results, name='results'),
    url(r'^(?P<question_id>[0-9]+)/vote/$', views.vote, name='vote'),
]
Salin selepas log masuk

Dalam contoh di atas, kami menentukan empat laluan URL, termasuk halaman utama, halaman butiran soalan, halaman keputusan undian dan halaman fungsi pengundian. Untuk setiap laluan URL, kami menentukan fungsi pemprosesan yang sepadan. Django secara automatik akan memadankan URL yang diminta dengan laluan, dengan itu merealisasikan fungsi mengurus URL secara automatik.

c. Sistem pengurusan latar belakang pentadbir terbina dalam

Sistem pengurusan latar belakang pentadbir Django ialah fungsi yang sangat berkuasa. Melalui sistem pengurusan latar belakang ini, kita boleh menambah, memadam, mengubah dan menyemak pangkalan data dengan mudah. Sistem pengurusan latar belakang pentadbir dalam versi Django 1.x sudah mempunyai banyak fungsi asas, seperti menjana tapak pentadbir secara automatik, mengurus model data, memaparkan senarai tersuai, penapis dan borang, dsb.

  1. Versi Django 2.x

Versi Django 2.x termasuk daripada 2.0.0 hingga 2.2.24, yang membawa beberapa peningkatan besar kepada Django.

a. Memperkenalkan ASGI

Dalam versi Django 2.x, protokol ASGI (Asynchronous Server Gateway Interface) telah diperkenalkan. ASGI ialah protokol yang direka untuk pelayan web tak segerak, yang membolehkan pembangun menulis aplikasi web tak segerak. Dengan cara ini, kami dapat memenuhi keperluan pengaturcaraan tak segerak, seperti soket web, komunikasi masa nyata, tugas yang memakan masa, dsb.

async def application(scope, receive, send):
    assert scope['type'] == 'http'

    await send({
        'type': 'http.response.start',
        'status': 200,
        'headers': [
            [b'content-type', b'text/plain'],
        ]
    })
    await send({
        'type': 'http.response.body',
        'body': b'Hello, world!',
    })
Salin selepas log masuk

Contoh kod di atas menggunakan ASGI untuk menulis aplikasi web mudah. Pertama, tentukan fungsi tak segerak aplikasi, yang menerima tiga parameter: skop, terima dan hantar. Parameter ini ditetapkan dan dipersetujui oleh protokol ASGI. Antaranya, skop mewakili konteks permintaan, termasuk jenis permintaan, laluan, rentetan pertanyaan, dsb. terima mewakili kaedah menerima permintaan, membina kamus untuk mewakili pengepala permintaan, kod respons, dll.; mengembalikan respons kepada klien.

b. Keserasian Python 2.x yang dialih keluar

Dalam versi Django 2.x, keserasian Python 2.x telah dialih keluar dan versi pustaka pihak ketiga Python 2.x tidak lagi disokong. Ini bermakna pembangun perlu menggunakan Python 3.x untuk membangunkan aplikasi Django.

Selain itu, versi Django 2.x juga mempunyai beberapa penambahbaikan dan pengoptimuman lain, seperti:

  • Menambah kod status HTTP baharu dan pengecualian
  • Menambahkan mekanisme keselamatan kata laluan yang lebih baik
  • Sokongan ujian yang lebih baik dan rangka kerja ujian baharu; diperkenalkan.
  1. Versi Django 3.x

Versi Django 3.x ialah versi terkini pada masa ini, termasuk dari 3.0.0 hingga 3.2.5. Ia meningkatkan lagi fungsi dan prestasinya berdasarkan versi 2.x.

a. Parameter laluan sokongan

Dalam versi Django 3.x, Penukar Laluan, iaitu sokongan untuk parameter laluan, telah diperkenalkan. Ciri baharu ini sangat berguna untuk membangunkan API RESTful dan boleh menyediakan kaedah pemadanan yang lebih fleksibel untuk URL.

from django.urls import path

def greet(request, name):
    return HttpResponse(f'Hello, {name}!')

urlpatterns = [
    path('greet/<name>/', greet),
    ...
]
Salin selepas log masuk

Dalam contoh di atas, kami menentukan nama parameter laluan. Sebarang nilai dalam laluan permintaan boleh diisikan ke dalam parameter nama dan diwakili sedemikian semasa memproses paparan.

b. Penggantian UnicodeSlugify

Dalam versi Django 3.x, UnicodeSlugify tidak lagi digunakan untuk menggantikan Slugify lalainya. UnicodeSlugify ialah perpustakaan pihak ketiga yang membolehkan pembangun bekerja dengan lebih banyak bahasa dan set aksara. Daripada UnicodeSlugify, algoritma Slugify baharu telah direka untuk Django yang lebih piawai, lebih setempat, lebih komprehensif, lebih berskala dan lebih selamat.

c. Optimumkan pertanyaan pangkalan data

Dalam versi Django 3.x, kaedah pertanyaan pangkalan data dioptimumkan lagi. Contohnya, apabila aplikasi bermula, Django menyimpan metadata untuk semua pertanyaan pangkalan data. Ini boleh mengurangkan bilangan carian struktur jadual dan meningkatkan kelajuan tindak balas aplikasi.

Selain itu, versi Django 3.x juga menambahkan banyak ciri dan penambahbaikan baharu yang lain, seperti:

  • Perisian tengah baharu yang menyokong pangkalan data bacaan berbilang
  • Penjanaan pelan pertanyaan yang dioptimumkan dengan ketara dan
  • sokongan penambahan secara dinamik; pertanyaan kumpulan;
  • Tambahan sokongan untuk e-mel tak segerak dan permintaan HTTP

Artikel ini menerangkan secara ringkas perubahan dalam evolusi daripada Django 1.x kepada Django 3.x. Perubahan ini membawa prestasi yang lebih baik, kecekapan pembangunan yang lebih baik dan kemudahan penggunaan yang lebih baik. Sebagai rangka kerja MVC, saya percaya Django akan menjadi lebih dan lebih sempurna.

Atas ialah kandungan terperinci Evolusi versi Django: dari 1.x hingga 3.x, ketahui tentang ciri dan peningkatan baharu. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
4 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Cara Membuka Segala -galanya Di Myrise
1 bulan yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Tutorial mengemas kini versi curl di bawah Linux! Tutorial mengemas kini versi curl di bawah Linux! Mar 07, 2024 am 08:30 AM

Untuk mengemas kini versi curl di bawah Linux, anda boleh mengikuti langkah di bawah: Semak versi curl semasa: Pertama, anda perlu menentukan versi curl yang dipasang dalam sistem semasa. Buka terminal dan laksanakan arahan berikut: curl --version Perintah ini akan memaparkan maklumat versi curl semasa. Sahkan versi curl tersedia: Sebelum mengemas kini curl, anda perlu mengesahkan versi terkini yang tersedia. Anda boleh melawati tapak web rasmi curl (curl.haxx.se) atau sumber perisian yang berkaitan untuk mencari versi terkini curl. Muat turun kod sumber curl: Menggunakan curl atau penyemak imbas, muat turun fail kod sumber untuk versi curl pilihan anda (biasanya .tar.gz atau .tar.bz2

Cara menyemak versi Oracle yang dipasang dengan mudah Cara menyemak versi Oracle yang dipasang dengan mudah Mar 07, 2024 am 11:27 AM

Cara menyemak versi Oracle yang dipasang dengan mudah memerlukan contoh kod khusus Sebagai perisian yang digunakan secara meluas dalam sistem pengurusan pangkalan data peringkat perusahaan, pangkalan data Oracle mempunyai banyak versi dan kaedah pemasangan yang berbeza. Dalam kerja harian kami, kami sering perlu menyemak versi pangkalan data Oracle yang dipasang untuk operasi dan penyelenggaraan yang sepadan. Artikel ini akan memperkenalkan cara menyemak versi Oracle yang dipasang dengan mudah dan memberikan contoh kod tertentu. Kaedah 1: Melalui pertanyaan SQL dalam pangkalan data Oracle, kita boleh

Semak versi sistem pengendalian Kirin dan versi kernel Semak versi sistem pengendalian Kirin dan versi kernel Feb 21, 2024 pm 07:04 PM

Menyemak versi sistem pengendalian Kylin dan versi kernel Dalam sistem pengendalian Kirin, mengetahui cara menyemak versi sistem dan versi kernel adalah asas untuk pengurusan dan penyelenggaraan sistem. Kaedah 1 untuk menyemak versi sistem pengendalian Kylin: Gunakan fail /etc/.kyinfo Untuk menyemak versi sistem pengendalian Kylin, anda boleh menyemak fail /etc/.kyinfo. Fail ini mengandungi maklumat versi sistem pengendalian. Jalankan arahan berikut: cat/etc/.kyinfo Perintah ini akan memaparkan maklumat versi terperinci sistem pengendalian. Kaedah 2: Gunakan fail /etc/issue Cara lain untuk menyemak versi sistem pengendalian adalah dengan melihat fail /etc/issue. Fail ini juga menyediakan maklumat versi, tetapi mungkin tidak sebaik fail .kyinfo

Langkah mudah untuk mengemas kini versi pip: selesai dalam 1 minit Langkah mudah untuk mengemas kini versi pip: selesai dalam 1 minit Jan 27, 2024 am 09:45 AM

Selesai dalam satu minit: Cara mengemas kini versi pip, contoh kod khusus diperlukan Dengan perkembangan pesat Python, pip telah menjadi alat standard untuk pengurusan pakej Python. Walau bagaimanapun, seiring dengan berlalunya masa, versi pip sentiasa dikemas kini Untuk dapat menggunakan ciri terkini dan memperbaiki kemungkinan kelemahan keselamatan, adalah sangat penting untuk mengemas kini versi pip. Artikel ini akan menerangkan cara mengemas kini pip dengan cepat dalam satu minit dan memberikan contoh kod khusus. Pertama, kita perlu membuka tetingkap baris arahan. Dalam sistem Windows, anda boleh menggunakan

Bagaimana untuk mengetahui sama ada antara muka dp ialah 1.2 atau 1.4? Bagaimana untuk mengetahui sama ada antara muka dp ialah 1.2 atau 1.4? Feb 06, 2024 am 10:27 AM

Antara muka DP adalah kabel antara muka yang penting dalam komputer Apabila menggunakan komputer, ramai pengguna ingin mengetahui sama ada antara muka DP adalah 1.2 atau 1.4, mereka hanya perlu menyemaknya dalam GPU-Z. Cara menentukan sama ada antara muka dp ialah 1.2 atau 1.4: 1. Mula-mula, pilih "Lanjutan" dalam GPU-Z. 2. Lihat "Monitor1" dalam "General" di bawah "Advanced", anda boleh melihat dua item "LinkRate (semasa)" dan "Lanes (semasa)". 3. Akhir sekali, jika 8.1Gbps×4 dipaparkan, ia bermakna versi DP1.3 atau lebih tinggi, biasanya DP1.4 Jika 5.4Gbps×4, maka

750,000 pusingan pertempuran satu lawan satu antara model besar, GPT-4 memenangi kejuaraan, dan Llama 3 menduduki tempat kelima 750,000 pusingan pertempuran satu lawan satu antara model besar, GPT-4 memenangi kejuaraan, dan Llama 3 menduduki tempat kelima Apr 23, 2024 pm 03:28 PM

Mengenai Llama3, keputusan ujian baharu telah dikeluarkan - komuniti penilaian model besar LMSYS mengeluarkan senarai kedudukan model besar Llama3 menduduki tempat kelima, dan terikat untuk tempat pertama dengan GPT-4 dalam kategori Bahasa Inggeris. Gambar ini berbeza daripada Penanda Aras yang lain Senarai ini berdasarkan pertempuran satu lawan satu antara model, dan penilai dari seluruh rangkaian membuat cadangan dan skor mereka sendiri. Pada akhirnya, Llama3 menduduki tempat kelima dalam senarai, diikuti oleh tiga versi GPT-4 dan Claude3 Super Cup Opus yang berbeza. Dalam senarai tunggal Inggeris, Llama3 mengatasi Claude dan terikat dengan GPT-4. Mengenai keputusan ini, ketua saintis Meta LeCun sangat gembira, tweet semula dan

Tafsirkan maksud dan perbezaan PHP versi NTS Tafsirkan maksud dan perbezaan PHP versi NTS Mar 27, 2024 am 11:48 AM

Maksud dan perbezaan versi PHP NTS PHP ialah bahasa skrip sebelah pelayan yang popular yang digunakan secara meluas dalam bidang pembangunan web. Terdapat dua versi utama PHP: ThreadSafe(TS) dan Non-ThreadSafe(NTS). Di laman web rasmi PHP, kita boleh melihat dua versi muat turun PHP yang berbeza, iaitu PHPNTS dan PHPTS. Jadi, apakah maksud NTS versi PHP? Apakah perbezaan antara versi TS? Seterusnya,

Panduan pemilihan versi Numpy: mengapa naik taraf? Panduan pemilihan versi Numpy: mengapa naik taraf? Jan 19, 2024 am 09:34 AM

Dengan perkembangan pesat bidang seperti sains data, pembelajaran mesin dan pembelajaran mendalam, Python telah menjadi bahasa arus perdana untuk analisis dan pemodelan data. Dalam Python, NumPy (singkatan untuk NumericalPython) ialah perpustakaan yang sangat penting kerana ia menyediakan satu set objek tatasusunan berbilang dimensi yang cekap dan merupakan asas untuk banyak perpustakaan lain seperti panda, SciPy dan scikit-learn. Dalam proses menggunakan NumPy, anda mungkin menghadapi masalah keserasian antara versi yang berbeza, kemudian

See all articles