[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](/media/filer_public_thumbnails/filer_public/8b/ac/8bac9496-cf84-4acd-86cc-8247496c66bf/useful_commandscode_snippets.png__1500x900_crop_subsampling-2_upscale.png)
![[Tips] Django useful commands and code snippets](/media/filer_public_thumbnails/filer_public/8b/ac/8bac9496-cf84-4acd-86cc-8247496c66bf/useful_commandscode_snippets.png__400x240_crop_subsampling-2_upscale.png)
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 ĐẦUpython 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)