Tạo mới dự án Django bởi PyCharm

Môi trường phát triển: Python 3.9; PyCharm 2021 Ultimate; Windows 10 pro x64, PostgreSQL 13. Tạo dự án Bấm Shift + F9 để chạy debug. Truy cập http://127.0.0.1:8000/ để xem kết quả. Một web-app đã hoàn thành xong, gồm cả back-end và front-end. Để truy cập trang quản trị, truy cập URL http://127.0.0.1:8000/admin Tuy nhiên,

Môi trường phát triển:

Python 3.9; PyCharm 2021 Ultimate; Windows 10 pro x64, PostgreSQL 13.

Tạo dự án

Bấm Shift + F9 để chạy debug. Truy cập http://127.0.0.1:8000/ để xem kết quả.

Một web-app đã hoàn thành xong, gồm cả back-end và front-end. Để truy cập trang quản trị, truy cập URL http://127.0.0.1:8000/admin

Tuy nhiên, vấn đề là chúng ta không biết username, password là gì. Vậy phải tạo tài khoản admin.
Cài đặt gói

# DATABASES = {#     'default': {#         'ENGINE': 'django.db.backends.sqlite3',#         'NAME': BASE_DIR / 'db.sqlite3',#     }# }

DATABASES ={'default':{'ENGINE':'django.db.backends.postgresql_psycopg2','NAME':'mydjango','USER':'postgres','PASSWORD':'postgres','HOST':'127.0.0.1','PORT':'5432',}}

Mã nguồn đoạn này: https://github.com/donhuvy/mydjango/blob/main/djangoProject/settings.py#L84-L93

Các câu lệnh đã dùng

pip install django psycopg2
python manage.py migrate

python manage.py createsuperuser

Như vậy, với IDE mạnh, các dòng mã nguồn có sẵn, bạn dễ dàng tạo mới một web-app có cả front-end, back-end, có cả bảo mật, phân quyền, và chạy trên một hệ quản trị cơ sở dữ liệu mạnh mẽ là PostgreSQL 13.

Kiểm tra phiên bản Django

Trong trường hợp bạn không dùng IDE, mà tạo mới một project bằng commnad line

Tạo app

Tạo mới app

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.defindex(request):return HttpResponse("Chào Minh Thu. Bạn đang ở trang chủ của ứng dụng Bình chọn.")

Tạo mới file urls.py

from django.urls import path

from.import views

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

Vào trong phần cấu hình url của ứng dụng tổng, khai báo thêm url

Kết quả

Tạo model

from django.db import models

# Create your models here.classQuestion(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')classChoice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

Khai báo app bình chọn trong ứng dụng tổng

Chạy lệnh migration dữ liệu, từ model sẽ sinh ra table trong database PostgreSQL

python manage.py makemigrations polls
python manage.py sqlmigrate polls 0001
python manage.py migrate

Thật kỳ diệu

Refresh lại database để xem table đã tự động được tạo ra từ Model trong code Python

(Cảm giác cứ như là Package Manage Console, chạy Migration trong .NET Core 5.x với Entity Framework Core vậy)

Dùng thử ORM của Django xem API query C.R.U.D.S. dữ liệu thế nào

python manage.py shell
from polls.models import Choice, Question

Question.objects.all()

from django.utils import timezone

q = Question(question_text="Có gì mới không Thu?", pub_date=timezone.now())

q.save()

Xem kết quả trong database, thật tuyệt vời, có thể tin được

Update bản ghi

Xem kết quả trong database PostgreSQL đã được cập nhật

Các API query dữ liệu rất mạnh mẽ.

Hiển thị nội dung từ database

Hãy tạo ra thay đổi trong model, cho mỗi model có thêm phương thức in ra nội dung, hãy nhìn diff trong code https://github.com/donhuvy/mydjango/commit/b939c8d27437abb69d264aad126dde0c03152b59?branch=b939c8d27437abb69d264aad126dde0c03152b59&diff=split

Thêm phương thức tìm bản ghi mới tạo: https://github.com/donhuvy/mydjango/commit/b8f433951d9503d7d39f6cb70c99d864278a49f6?branch=b8f433951d9503d7d39f6cb70c99d864278a49f6&diff=split

Bài viết tham khảo phần lớn từ https://docs.djangoproject.com/en/3.2/#first-steps . Mã nguồn: https://github.com/donhuvy/mydjango.git

Nguồn: viblo.asia

Bài viết liên quan

WebP là gì? Hướng dẫn cách để chuyển hình ảnh jpg, png qua webp

WebP là gì? WebP là một định dạng ảnh hiện đại, được phát triển bởi Google

Điểm khác biệt giữa IPv4 và IPv6 là gì?

IPv4 và IPv6 là hai phiên bản của hệ thống địa chỉ Giao thức Internet (IP). IP l

Check nameservers của tên miền xem website trỏ đúng chưa

Tìm hiểu cách check nameservers của tên miền để xác định tên miền đó đang dùn

Mình đang dùng Google Domains để check tên miền hàng ngày

Từ khi thông báo dịch vụ Google Domains bỏ mác Beta, mình mới để ý và bắt đầ