Chuẩn bị môi trường
Các công cụ cần thiết:
- Python 3.7+
- PyCharm IDE (Community hoặc Professional)
Tạo dự án Django
Trong PyCharm:
- Mở Terminal
- Cài đặt framework:
pip install django
- Tạo dự án:
django-admin startproject app_core
cd app_core
- Khởi động server thử nghiệm:
python manage.py runserver
Truy cập http://127.0.0.1:8000/ để kiểm tra giao diện chào mừng.
Quy trình xử lý yêu cầu
Khi trình duyệt truy cập URL:
- Yêu cầu đến server Django
- Router (urls.py) khớp đường dẫn
- Chạy hàm view xử lý
- Trả về phản hồi HTTP
Cấu hình router cơ bản
Thêm route vào
app_core/urls.py:
from django.http import HttpResponse
def home_view(request):
return HttpResponse("Chào mừng đến với Django")
urlpatterns = [
path('admin/', admin.site.urls),
path('', home_view), # Route chính
]
Tạo module ứng dụng
Tạo ứng dụng book:
python manage.py startapp app_core
Đăng ký ứng dụng
Thêm vào
settings.py:
INSTALLED_APPS = [
# ... các ứng dụng mặc định
'app_core', # Ứng dụng mới
]
Cấu hình router phân vùng
Trong
app_core/urls.py:
from django.urls import path
from .views import home_view
urlpatterns = [
path('', home_view),
]
Và cập nhật router tổng:
urlpatterns = [
path('admin/', admin.site.urls),
path('app/', include('app_core.urls')), # Gọi router ứng dụng
]
Cấu hình template
1. Tạo thư mục
templates ở root project
2. Cập nhật
settings.py:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [BASE_DIR / 'templates'],
...
},
]
Quản lý tài nguyên tĩnh
1. Tạo thư mục
static để lưu tài nguyên
2. Cấu hình trong
settings.py:
STATIC_URL = '/static/'
STATICFILES_DIRS = [BASE_DIR / 'static']
Tạo template mẫu
Tạo file
templates/app_core/search.html:
<!DOCTYPE html>
<html lang="vi">
<head>
<meta charset="UTF-8">
<title>Danh sách sách</title>
<link rel="stylesheet" href="/static/css/style.css">
</head>
<body>
<table>
<tr><th>Mã</th><th>Tên sách</th><th>Tác giả</th></tr>
<tr><td>B001</td><td>Lập trình Python</td><td>Nguyễn Văn A</td></tr>
<tr><td>B002</td><td>Django Web</td><td>Trần Thị B</td></tr>
</table>
</body>
</html>
Áp dụng CSS
File
static/css/style.css:
table {
width: 100%;
border-collapse: collapse;
margin: 20px 0;
}
table th, table td {
border: 1px solid #333;
padding: 8px;
text-align: left;
}
View xử lý template
Trong
app_core/views.py:
from django.shortcuts import render
def show_books(request):
return render(request, 'app_core/search.html')
Cấu hình URL cho view
Trong
app_core/urls.py:
from django.urls import path
from .views import show_books
urlpatterns = [
path('books/', show_books),
]