Xây dựng Django app đầu tiên

Chào các bạn,
Chúng ta tiếp tục với việc tìm hiểu Django. Ở bài trước chúng ta đã xây dựng được một Django project đầu tiên cho mình. Ở bài này chúng ta xây dựng một ứng dụng trong Django, ứng dụng này đơn giản chỉ là hiển thị Hello World trên màn hình.
Dự án Django là một tập hợp các ứng dụng và cấu hình kết hợp lại tạo nên một ứng dụng web chính thức. Ứng dụng Django là các thư mục con bên trong dự án Django. Mục đích của các ứng dụng Django là thực hiện một nhiệm vụ cụ thể mà trong trường hợp này là kết xuất ‘Hello World!’.
Chúng ta hãy xem lại thư mục của chúng ta có những gì ở bài trước

myproject/                  <-- higher level folder
 |-- newproject/             <-- django project folder
 |    |-- newproject/
 |    |    |-- __init__.py
 |    |    |-- settings.py
 |    |    |-- urls.py
 |    |    |-- wsgi.py
 |    +-- manage.py
 +-- venv/                  <-- virtual environment 

Bây giờ chúng ta tạo một app có tên là myApp bằng lệnh sau.
`

python3 manage.py startapp myApp

Chúng ta sẽ có thêm thư mục myApp trong thư mục newproject.


và chúng ta sẽ có trong thư mục newproject trông như thế này

├── db.sqlite3
├── newproject
│   ├── __init__.py
│   ├── settings.py
│   ├── urls.py
│   ├── wsgi.py
├── manage.py
└── myApp
    ├── __init__.py
    ├── admin.py
    ├── apps.py
    ├── migrations
    │   └── __init__.py
    ├── models.py
    ├── tests.py
    └── views.py

Nhiều file mới trong thư mục myApp mà chúng ta chưa nhìn thấy trước đó.
admin.py – File có định nghĩa quản trị viên cho ứng dụng - cần có định nghĩa như vậy để truy cập các phiên bản lớp model từ quản trị viên Django

apps.py – File cấu hình các đối số cho ứng dụng.

models.py – File định nghĩa các dữ liệu cho ứng dụng.

tests.py – File định nghĩa test cho ứng dụng.

views.py – File định nghĩa view cho ứng dụng.

migrations – Thư mục lưu trữ những thay đổi của database trong ứng dụng.
Bây giờ chúng ta sẽ thêm ứng myApp của chúng ta vào Django project setting. Mở file setting.py trong thư mục newproject và tìm tới đoạn INSTALLED_APPS bạn phải nhìn thấy đoạn sau:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

Chúng ta thêm myApp của chúng ta ở dưới và lưu file này lại

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myApp'
]

Cho đến bây giờ mọi cấu hình đã xong với ứng dụng của chúng ta. Nếu theo cách làm web thông thường chúng ta sẽ cần một file html ví dụ hello.html và một cấu hình route đến file html ấy ví dụ http://myexample.com/hello.html.
Trong Django chúng ta cũng làm những câu việc tương tự nhưng theo cách khác. Phần hiển thị chúng ta sẽ viết vào views.py của ứng dụng và phần route url chúng ta sẽ viết vào file urls.py
Bây giờ chúng ta hãy mở file views.py trong myApp ra và soạn thảo theo sau đây

from django.http import HttpResponse

def index(request):
    return HttpResponse('Hello, World!')

Đầu tiên, chúng ta đã nhập lớp HttpResponse từ mô-đun django.http sau đó chúng ta đã thực hiện một chức năng nhận yêu cầu và trả về một đối tượng HttpResponse, ví dụ như chuỗi ‘Hello, World!’. Lưu ý rằng mọi hàm xem phải mất ít nhất một tham số theo quy ước được gọi là request.
Chúng ta mở file urls.py trong thư mục newproject nó sẽ có dạng như sau

from django.contrib import admin
from django.urls import path

urlpatterns = [
    path('admin/', admin.site.urls),
]

Chúng ta thêm vào những dòng sau

from django.contrib import admin
from django.urls import path
# imported views
from myApp import views

urlpatterns = [
    path('admin/', admin.site.urls),
    # configured the url
    path('',views.index, name="homepage")
]

Đầu tiên, chúng ta đã nhập các views từ thư mục myApp sau đó trong các mẫu URL, chúng ta đã thêm đường dẫn cho chế độ xem là trang chủ do đó chuỗi trống được ký hiệu là ’ ’ sau đó chúng ta đã map URL này vào chế độ xem chỉ mục của chúng ta và cuối cùng là tên đối số tùy chọn chúng ta chỉ định cho trang chủ. Điều này ngụ ý mọi yêu cầu đến trang chủ sẽ trả về chuỗi ‘Hello, World!’.
Bây giờ chúng ta chạy lệnh sau để khởi động web server

`

python3 manage.py runserver

`
Sau đấy chúng ta truy nhập vào đường dẫn http://127.0.0.1:8000/ sẽ thấy dòng chữ Hello, World!

2 Likes