Rumah >pembangunan bahagian belakang >Tutorial Python >Membina Apl Web dengan Python dan Django: Panduan Pemula untuk Penguasaan

Membina Apl Web dengan Python dan Django: Panduan Pemula untuk Penguasaan

王林
王林asal
2023-06-23 09:34:321037semak imbas

Membina Aplikasi Web dengan Python dan Django: Panduan dari Permulaan kepada Penguasaan

Dengan perkembangan pesat Internet, aplikasi Web telah menarik lebih banyak perhatian. Pembangunan aplikasi web memerlukan penguasaan beberapa kemahiran, salah satu kemahiran utama ialah memilih rangka kerja web yang betul. Rangka kerja bahasa Python Django ialah pilihan yang sangat baik, dan aplikasi web yang dibangunkan melalui Django boleh dilaksanakan dengan cepat, ringkas dan cekap.

Dalam panduan ini, kami akan menerangkan cara membina aplikasi web menggunakan Python dan Django daripada pemula hingga mahir. Kandungan termasuk:

  1. Pengetahuan asas bahasa Python
  2. Pengenalan kepada rangka kerja Django
  3. Kaedah reka bentuk lapisan model Django
  4. Penggunaan lapisan paparan Django dan lapisan templat
  5. Pemprosesan dan pengesahan borang Django
  6. Pengesahan pengguna dan pengurusan kebenaran Django
  7. Pembangunan rangka kerja Django REST

1 bahasa

Python ialah bahasa pengaturcaraan peringkat tinggi berorientasikan objek dengan sintaks yang ringkas, jelas dan fungsi yang berkuasa. Menguasai asas bahasa Python adalah penting untuk pembangunan aplikasi web menggunakan rangka kerja Django Berikut ialah pengenalan ringkas kepada asas bahasa Python:

  1. Pembolehubah dan jenis data
<.> Pembolehubah dalam Python boleh diisytiharkan dan diberikan nilai secara langsung tanpa menyatakan jenis data. Jenis data yang biasa digunakan termasuk nombor, rentetan, senarai, tupel, kamus, dsb. Contohnya:

a = 3
b = "hello"
c = [1, 2, 3]
d = (4, 5, 6)
e = {"name": "Tom", "age": 20}

    Pernyataan bersyarat
Pernyataan bersyarat dalam Python boleh digunakan untuk menentukan sama ada keadaan tertentu adalah benar dan melaksanakan operasi yang sepadan. Penyataan bersyarat yang biasa digunakan termasuk penyataan if dan penyataan elif, contohnya:

if a > 0:
    print("a is positive")
elif a == 0:
    print("a is zero")
else:
    print("a is negative")

    Penyataan gelung
Penyataan gelung dalam Python boleh digunakan untuk melakukan operasi tertentu berulang kali. Pernyataan gelung yang biasa digunakan termasuk untuk gelung dan gelung while, contohnya:

for i in range(1, 6):
    print(i)

i = 1
while i <= 5:
    print(i)
    i += 1

    Fungsi dan modul
Fungsi dan modul dalam Python boleh digunakan untuk merangkum operasi kompleks dan menyediakan Kod boleh guna semula. Takrifan fungsi menggunakan def kata kunci, dan modul menggunakan import kata kunci. Contohnya:

def add(x, y):
    return x + y

import math
print(math.pi)

2. Pengenalan kepada rangka kerja Django

Django ialah rangka kerja aplikasi web sumber terbuka yang cekap. Ia terdiri daripada pemeta hubungan objek berdasarkan prinsip asas "DRY" (Jangan Ulangi Sendiri), sistem pandangan berdasarkan struktur MTV (Model-Template-View, model-template-view) dan fleksibel, Sistem penghalaan URL yang berkuasa dan mudah digunakan. Django mempunyai ciri berikut:

    Latar belakang pengurusan terbina dalam: Django hadir dengan latar belakang pengurusan yang mudah dan mudah digunakan, yang boleh digunakan untuk mengurus pelbagai jadual data dalam aplikasi web.
  1. Boleh Diperluaskan: Rangka kerja Django mempunyai kebolehskalaan yang baik dan boleh menyepadukan modul berfungsi lain dengan mudah.
  2. Sistem templat: Django mempunyai sistem templat terbina dalam yang berkuasa yang boleh melaksanakan pemprosesan templat dan pemaparan halaman dengan mudah dalam aplikasi web.
  3. Sokongan pangkalan data: Django menyokong kegigihan data dalam berbilang pangkalan data (MySQL, SQLite, dll.).
  4. Keselamatan: Django menyediakan satu siri ciri keselamatan, seperti mencegah suntikan SQL, serangan XSS, dsb.
3. Kaedah reka bentuk lapisan model Django

Lapisan model Django ialah penerangan model data dalam aplikasi web Ia menggunakan teknologi pemetaan hubungan objek (ORM) untuk melaksanakan pangkalan data operasi. Dalam Django, reka bentuk lapisan model adalah salah satu kunci kepada pembangunan aplikasi web Berikut adalah pengenalan ringkas kepada kaedah reka bentuk lapisan model Django:

    Mencipta model
  1. Django Model dalam diterangkan menggunakan kelas Python, dan setiap kelas sepadan dengan jadual pangkalan data. Sebagai contoh, mencipta model yang dipanggil "Buku" boleh kelihatan seperti ini:
from django.db import models

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.CharField(max_length=50)
    publish_date = models.DateField()

Mentakrifkan medan
  1. Takrif medan model dalam Django menggunakan kelas Medan terbina dalam Django, dan Tentukan parameter yang berkaitan, contohnya:

CharField: medan aksara
  • IntegerField: integer field
  • DateField: date field
  • DateTimeField: date Medan masa
  • BooleanField: Boolean field
  • Contohnya, mentakrifkan medan aksara bernama "title" boleh seperti berikut:
title = models.CharField(max_length=100)

Tentukan perhubungan
  1. Model dalam Django menyokong pelbagai jenis perhubungan, seperti satu-ke-banyak, banyak-ke-satu, banyak-ke-banyak, dsb. Sebagai contoh, mentakrifkan perhubungan satu-ke-banyak boleh seperti berikut:
from django.db import models

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

class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE)

4. Penggunaan lapisan paparan Django dan lapisan templat

Lapisan paparan Django dan lapisan templat ialah pemprosesan data dan Bahagian teras pemaparan halaman. Lapisan paparan bertanggungjawab untuk menerima permintaan, memproses data dan menghantar data ke lapisan templat untuk pemaparan halaman. Berikut ialah pengenalan ringkas kepada penggunaan lapisan paparan dan lapisan templat Django:

Tentukan paparan
  1. Takrif paparan dalam Django menggunakan fungsi Python yang pertama parameter fungsi ialah objek yang digunakan untuk menerima parameter permintaan. Contoh:
from django.shortcuts import render

def index(request):
    books = Book.objects.all()
    return render(request, 'index.html', {'books': books})

Tentukan templat
  1. Templat dalam Django menggunakan teg dan penapis tersuai HTML dan Django, menyokong pemaparan dinamik dan penggantian pembolehubah. Sebagai contoh, mentakrifkan templat bernama "index.html" boleh kelihatan seperti ini:
{% for book in books %}
    <p>{{ book.title }} - {{ book.author.name }}</p>
{% endfor %}

Tentukan URL
  1. Takrifan URL dalam Django menggunakan ungkapan biasa, Alamat URL ialah dipetakan ke fungsi paparan yang sepadan. Contohnya:
from django.urls import path
from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

5. Pemprosesan dan pengesahan borang Django

Django表单处理和验证是Web应用程序中接收用户输入和数据验证的重要部分。Django提供了一系列表单处理和验证功能,以下是Django表单处理和验证的简要介绍:

  1. 定义表单

Django中的表单定义使用继承自Django内置Form类的Python类,每个类对应一个表单。例如,定义一个名为“LoginForm”的表单可以如下所示:

from django import forms

class LoginForm(forms.Form):
    username = forms.CharField(max_length=100)
    password = forms.CharField(max_length=100, widget=forms.PasswordInput)
  1. 处理表单

Django中的表单处理使用视图函数中的request.POST属性,用于接收表单提交的数据。例:

from django.shortcuts import render, redirect
from .forms import LoginForm

def login(request):
    if request.method == 'POST':
        form = LoginForm(request.POST)
        if form.is_valid():
            # 处理登录
            pass
    else:
        form = LoginForm()
    return render(request, 'login.html', {'form': form})
  1. 表单验证

Django中的表单验证使用form.cleaned_data属性,用于验证表单数据是否合法。若验证失败,会抛出ValidationError异常。例:

def clean_password(self):
    password = self.cleaned_data.get('password')
    if len(password) < 6:
        raise forms.ValidationError('密码长度不能小于6')
    return password

六、Django用户认证和权限管理

Django用户认证和权限管理是Web应用程序中用户登录和授权的核心部分。Django提供了一系列认证和权限管理功能,以下是Django用户认证和权限管理的简要介绍:

  1. 用户认证

Django中的用户认证使用Django内置的auth模块,包括用户注册、登录、退出等操作。例如,用户登录验证可以如下所示:

from django.contrib import auth

def login(request):
    ...
    user = auth.authenticate(username=username, password=password)
    if user is not None and user.is_active:
        auth.login(request, user)
        return redirect('index')
    ...
  1. 权限管理

Django中的权限管理使用Django内置的auth模块,包括用户权限设置、用户组设置等操作。例如,定义一个管理员用户组可以如下所示:

from django.contrib.auth.models import Group, Permission

group = Group(name='admin')
group.save()
permission = Permission.objects.get(codename='can_add_book')
group.permissions.add(permission)

七、Django REST框架开发

Django REST框架是基于Django的RESTful Web服务开发框架,提供了丰富的REST API开发功能。以下是Django REST框架开发的简要介绍:

  1. 安装Django REST框架

使用pip命令安装Django REST框架:

pip install djangorestframework
  1. 定义视图

Django REST框架中的视图使用Django内置的APIView类和ViewSet类。例如,定义一个BookViewSet视图集合可以如下所示:

from rest_framework import viewsets
from .serializers import BookSerializer
from .models import Book

class BookViewSet(viewsets.ModelViewSet):
    queryset = Book.objects.all()
    serializer_class = BookSerializer
  1. 定义序列化器

Django REST框架中的序列化器使用Django内置的Serializer类,用于将模型数据转换为JSON格式。例如,定义一个名为“BookSerializer”的序列化器可以如下所示:

from rest_framework import serializers
from .models import Book

class BookSerializer(serializers.ModelSerializer):
    class Meta:
        model = Book
        fields = '__all__'

通过以上介绍,相信读者对于使用Python和Django构建Web应用程序有了更好的理解和认识。当然,这些内容只是冰山一角,想要深入学习Django框架、了解更多的实现方法和应用场景,需要不断自学和实践。

Atas ialah kandungan terperinci Membina Apl Web dengan Python dan Django: Panduan Pemula untuk Penguasaan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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