[Mẹo] Các lệnh và đoạn mã hữu ích của Django

By khoanc, at: 11:31 Ngày 09 tháng 9 năm 2023

Thời gian đọc ước tính: __READING_TIME__ minutes

[Tips] Django useful commands and code snippets
[Tips] Django useful commands and code snippets

Django, một framework web Python cấp cao, nổi tiếng với sự mạnh mẽ, khả năng mở rộng và tốc độ phát triển nhanh chóng. Nó giúp các nhà phát triển tạo ra các ứng dụng web giàu tính năng một cách hiệu quả. Tuy nhiên, việc nắm vững vô số tính năng và lệnh của Django có thể là một nhiệm vụ khó khăn, đặc biệt là đối với người mới bắt đầu.

Tài liệu tham khảo nhanh này là lộ trình của bạn để chinh phục Django. Cho dù bạn là một nhà phát triển dày dặn kinh nghiệm tìm cách sắp xếp lại quy trình làm việc của mình hay một người mới bắt đầu hành trình Django, tài liệu tham khảo ngắn gọn và toàn diện này sẽ trở thành người bạn đồng hành đáng tin cậy của bạn. Nó cô đọng hệ sinh thái rộng lớn của Django thành các lệnh và mẹo nhỏ gọn, dễ thực hiện mà bạn có thể áp dụng ngay lập tức.

Trong bài viết này, chúng ta sẽ đi sâu vào thế giới của Tài liệu tham khảo nhanh Django. Chúng ta sẽ khám phá các lệnh và đoạn mã chính để quản lý các dự án Django,

 

Các lệnh chung

 

python manage.py startproject projectname  # Tạo một dự án mới
python manage.py runserver  # Chạy một server
python manage.py startapp appname  # Tạo một ứng dụng mới
python manage.py migrate  # Di chuyển cơ sở dữ liệu 
python manage.py migrate app_name # Di chuyển cơ sở dữ liệu cho một ứng dụng
python manage.py makemigrations  # Tạo script di chuyển cho một thay đổi mới
python manage.py makemigrations app_name  # Tạo script di chuyển cho một thay đổi mới cho một ứng dụng
python manage.py showmigrations  # Hiển thị toàn bộ lịch sử di chuyển
python manage.py showmigrations app_name  # Hiển thị toàn bộ lịch sử di chuyển cho một ứng dụng
python manage.py createsuperuser  # Tạo siêu người dùng
python manage.py shell  # Mở shell Django
python manage.py collectstatic  # Thu thập tất cả các tập tin tĩnh vào các thư mục tĩnh (tên thư mục mặc định là `static`)
python manage.py test  # Chạy kiểm thử Django, nó tìm kiếm tất cả các phương thức kiểm thử và lớp kiểm thử trong thư mục hiện tại.
python manage.py dbshell  # Mở giao diện dòng lệnh psql
python manage.py help  # Trợ giúp các lệnh

 

Các lệnh Django Extensions

 

python manage.py shell_plus  # Mở shell_plus Django 
python manage.py show_urls  # Hiển thị tất cả các url
python manage.py runserver_plus  # Chạy server plus với nhiều thông tin hơn
python manage.py graph_models  # Xuất sơ đồ cơ sở dữ liệu 

 

Các lệnh và đoạn mã nâng cao

 

Thuật ngữ di chuyển

 

python manage.py migrate app_name zero  # Di chuyển ứng dụng trở lại trạng thái di chuyển BAN ĐẦU
python manage.py migrate app_name 0004 --fake  # Đặt trạng thái di chuyển ứng dụng thành trạng thái 0004 nhưng không thực sự di chuyển dữ liệu. 


Điều này cực kỳ hữu ích khi nói đến việc kiểm thử và tùy chỉnh di chuyển dữ liệu. Giả sử rằng có một di chuyển cơ sở dữ liệu với thay đổi độ dài cột mới (CharField). Tuy nhiên, quản trị viên cơ sở dữ liệu đã cập nhật cơ sở dữ liệu vì điều này rất khẩn cấp. Sau đó, nhà phát triển phải tạo một di chuyển mới và đặt trạng thái di chuyển thành trạng thái mới. Và anh ấy không muốn thực sự di chuyển cơ sở dữ liệu. Anh ấy có thể sử dụng tùy chọn --fake để đặt trạng thái di chuyển cơ sở dữ liệu.


In thuộc tính query của queryset.

 

>>> queryset = User.objects.all()
>>> print(queryset.query)
SELECT "auth_user"."id", ... FROM "auth_user"

 

Giải thích truy vấn

 

>>> queryset = User.objects.all()
>>> print(queryset.explain)
Seq Scan on...(cost=0.00..10.40 rows=40 width=1779)

 

Lớp BaseModel

 

from django.core import serializers
from django.db import models
from django.forms.models import model_to_dict
from django.utils import timezone
from django.utils.functional import cached_property


class BaseModel(models.Model):
    class Meta:
        abstract = True

    id = models.AutoField(primary_key=True)
    created_at = models.DateTimeField(default=timezone.now)
    updated_at = models.DateTimeField(auto_now=True)

    def __str__(self):
        return f"{self.pk}"

    def to_json(self):
        return serializers.serialize("json", [self])

    def to_dict(self):
        return model_to_dict(self)

 

Tham khảo

Tag list:
- Database
- Tips
- Tips and Tricks
- queryset query
- dbshell
- startapp
- fake migration
- shell_plus
- queryset query print
- django commands
- runserver
- createsuperuser
- django useful commands

Theo dõi

Theo dõi bản tin của chúng tôi và không bao giờ bỏ lỡ những tin tức mới nhất.