Ngày đăng: 5 tháng 9 năm 2023
Nếu bạn đã theo dõi loạt bài Phát triển Django, thì bạn đã bắt đầu một ứng dụng Django, kết nối ứng dụng của bạn với MySQL và tạo các mô hình cơ sở dữ liệu cho dữ liệu Posts
và Comments
trong ứng dụng web blog của bạn.
Trong hướng dẫn này, chúng tôi sẽ kết nối và kích hoạt trang quản trị Django để bạn có thể quản lý trang blog của mình. Trang web quản trị Django được xây dựng sẵn với giao diện người dùng được thiết kế để cho phép bạn và những cá nhân đáng tin cậy khác quản lý nội dung cho trang web.
Điều đáng chú ý là tài liệu chính thức của Django chỉ ra rằng mặc dù điều này lý tưởng cho mục đích sử dụng nội bộ của tổ chức, nhưng không nên xây dựng ứng dụng web xung quanh giao diện quản trị Django được tạo tự động. Nếu bạn thấy rằng giao diện của mình cần tập trung vào quy trình hơn hoặc chứng tỏ trừu tượng hóa các chi tiết triển khai của các bảng và trường cơ sở dữ liệu, thì tốt nhất là bạn nên viết các quan điểm của riêng mình cho phía quản trị viên.
Hướng dẫn này là một phần của loạt bài Phát triển Django và là phần tiếp theo của loạt bài đó.
Nếu bạn chưa theo dõi loạt bài này, chúng tôi đang đưa ra các giả định sau:
Vì hướng dẫn này chủ yếu xử lý Giao diện quản trị Django, bạn có thể làm theo ngay cả khi bạn có một thiết lập hơi khác.
Bất cứ khi nào chúng ta bắt đầu làm việc với Python và Django, chúng ta nên kích hoạt môi trường ảo Python của mình và chuyển vào thư mục gốc của ứng dụng. Nếu bạn đã theo dõi loạt bài này, bạn có thể đạt được điều này bằng cách nhập nội dung sau.
- cd ~/my_blog_app
- . env/bin/activate
Để bật Django Admin, chúng tôi cần đảm bảo rằng ứng dụng của chúng tôi nằm trong danh sách INSTALLED_APPS
trong tệp settings.py
.
Điều hướng đến thư mục của tệp cài đặt:
- cd ~/my_blog_app/blog/blog/
Từ đây, hãy mở tệp settings.py
. Nếu chưa có, hãy thêm django.contrib.admin
vào danh sách INSTALLED_APPS
, sử dụng trình soạn thảo văn bản như nano
.
- nano settings.py
Phần INSTALLED_APPS
của tệp phải giống với tệp bên dưới. Ứng dụng của chúng tôi trong danh sách là ứng dụng ở trên cùng, 'blogsite'
, nhưng nếu bạn đã tạo một ứng dụng có tên khác, hãy đảm bảo rằng ứng dụng đó được liệt kê trong tệp này như minh họa.
...
# Application definition
INSTALLED_APPS = [
'blogsite',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...
Đảm bảo lưu và đóng tệp nếu bạn thực hiện thay đổi. Trong nano, bạn có thể thực hiện việc này bằng cách nhập CTRL
và X
rồi Y
rồi ENTER
.
Bây giờ chúng ta có thể mở lại tệp urls.py
bằng nano hoặc trình soạn thảo văn bản khác.
- nano urls.py
Trong phần nhận xét ở trên cùng, tệp sẽ giống như sau.
…
"""
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
Nếu tệp khác với tệp ở trên, hãy sao chép và dán các dòng ở trên vào tệp urls.py
của bạn.
Bây giờ chúng tôi đã đảm bảo rằng dự án web Django của chúng tôi có mã thích hợp trong các tệp settings.py
và urls.py
, chúng tôi biết rằng ứng dụng của chúng tôi sẽ có quyền truy cập vào các mô hình quản trị và giao diện người dùng quản trị.
Tiếp theo, chúng ta nên di chuyển các mô hình sang cơ sở dữ liệu để nó chọn các mô hình Admin mới được thêm vào.
Điều hướng đến thư mục chứa tệp manage.py
.
- cd ~/my_blog_app/blog
Hãy nhớ chạy lệnh migrate
bất cứ khi nào bạn thực hiện bất kỳ thay đổi nào đối với models
, như vậy.
- python manage.py migrate
Nếu chúng tôi không thực hiện bất kỳ thay đổi nào đối với các tệp ở trên, chúng tôi sẽ nhận được đầu ra tương tự như sau khi chạy lệnh migrate
.
OutputOperations to perform:
Apply all migrations: admin, auth, blogsite, contenttypes, sessions
Running migrations:
No migrations to apply.
Mặt khác, đầu ra sẽ chỉ ra rằng Django đã thực hiện các chuyển đổi cần thiết để hỗ trợ ứng dụng của chúng tôi.
Bây giờ chúng ta có thể khởi động máy chủ bằng cách chạy lệnh sau. Bạn có thể thay thế 0.0.0.0
bằng địa chỉ IP của mình.
- python manage.py runserver 0.0.0.0:8000
Sau đó điều hướng đến URL của bảng quản trị trong trình duyệt bạn chọn. Đảm bảo nhập địa chỉ IP của máy chủ của bạn.
http://your-server-ip:8000/admin/
Bạn sẽ nhận được một màn hình đăng nhập tương tự như thế này.
Đến màn hình này cho chúng tôi biết rằng chúng tôi đã bật thành công ứng dụng quản trị.
Mặc dù chúng tôi đã bật ứng dụng nhưng có thể chúng tôi chưa thiết lập tài khoản quản trị Django. Chúng ta có thể tạo tài khoản quản trị để đăng nhập ở bước tiếp theo.
Nếu bạn đã thiết lập tài khoản quản trị và có thể đăng nhập vào trang quản trị của mình, bạn có thể bỏ qua bước này.
Mở một thiết bị đầu cuối mới để kết nối với máy chủ hoặc tắt ứng dụng Django bằng cách nhấn CTRL
và C
để chúng tôi có thể làm việc trên môi trường lập trình của thiết bị đầu cuối máy chủ của mình.
Django cho phép bạn tạo tài khoản siêu người dùng (super-user), chúng ta có thể thực hiện việc này bằng cách chạy tệp manage.py
để bắt đầu quá trình tạo siêu người dùng.
- python manage.py createsuperuser
Khi chúng tôi làm như vậy, chúng tôi sẽ được nhắc điền thông tin chi tiết về tên người dùng, email và mật khẩu của chúng tôi. Trong hướng dẫn này, chúng tôi sẽ tạo một tài khoản quản trị viên với tên người dùng admin_user
, email sammy@example.com
và mật khẩu admin123
. Bạn nên điền thông tin này theo sở thích của riêng mình và đảm bảo sử dụng mật khẩu an toàn mà bạn sẽ nhớ.
OutputUsername (leave blank to use 'root'): admin_user
Email address: sammy@example.com
Sau đó nhập mật khẩu của bạn hai lần khi bạn thấy dấu nhắc Password:
. Bạn sẽ không nhận được kết quả từ các lần nhấn phím của mật khẩu khi nhập. Nhấn enter sau mỗi lời nhắc để xác nhận mật khẩu của bạn.
OutputPassword:
Password (again):
Tại thời điểm này, chúng tôi hiện có tài khoản quản trị viên với tên người dùng admin_user
và mật khẩu admin123
.
Hãy đăng nhập và điều tra những gì tồn tại trên trang quản trị của chúng tôi.
Nếu cần, hãy chạy lại ứng dụng Django với python manage.py runserver 0.0.0.0:8000
rồi điều hướng một lần nữa tới URL http://your-server-ip:8000/admin/
để truy cập trang đăng nhập quản trị viên. Sau đó đăng nhập bằng tên người dùng và mật khẩu bạn vừa tạo.
Sau khi đăng nhập thành công, bạn sẽ nhận được trang sau.
Tiếp theo, chúng ta sẽ cần làm việc để kết nối ứng dụng blog của mình với bảng quản trị.
Ở bước trước, chúng tôi đã đăng nhập thành công vào giao diện quản trị, nhưng bạn có thể nhận thấy rằng ứng dụng blog của chúng tôi chưa khả dụng ở đó. Để điền vào giao diện quản trị của chúng tôi với ứng dụng blog, chúng tôi cần thêm và đăng ký nó với các mô hình được liên kết Post
và Comment
.
Để làm điều này, chúng tôi sẽ tạo một tệp trống có tên urls.py
, trong thư mục blogsite
, như sau:
- touch ~/my_blog_app/blog/blogsite/urls.py
Trong tệp này, chúng tôi sẽ thêm mẫu URL cho ứng dụng blog của chúng tôi để chúng tôi có thể truy cập nó qua giao diện quản trị.
Điều hướng đến vị trí của tệp urls.py
mà chúng tôi vừa tạo.
- cd ~/my_blog_app/blog/blogsite/
Sau đó, mở tệp bằng nano chẳng hạn.
- nano urls.py
Thêm các dòng mã sau vào tệp.
from django.urls import path
from . import views
urlpatterns = [
path('$/', views.posts, name='posts'),
path('$/', views.comments, name='comments'),
]
Đây là các biểu thức mẫu URL cần thiết để cho phép ứng dụng của chúng tôi truy cập chế độ views
cho Posts
và Comments
. Chúng tôi chưa tạo các chế độ views
đó, nhưng sẽ đề cập đến vấn đề này sau trong loạt bài này.
Kết nối blog của chúng tôi với giao diện quản trị sẽ cho phép chúng tôi xem các liên kết cho cả Posts
và Comments
bên trong bảng điều khiển quản trị. Ngay bây giờ, bảng điều khiển hiện tại chỉ hiển thị các liên kết cho Groups
và Users
.
Để kết nối cả hai với nhau, chúng ta cần đăng ký các mô hình Posts
và Comments
bên trong tệp quản trị của blogsite
.
Điều hướng đến thư mục blogsite
:
- cd ~/my_blog_app/blog/blogsite
Sau đó, mở tệp admin.py
trong trình soạn thảo văn bản bạn chọn.
- nano admin.py
Tệp sẽ được điền bằng một câu lệnh nhập và một nhận xét.
from django.contrib import admin
# Register your models here.
Bạn nên chỉnh sửa tệp để nó chứa mã sau nhằm hỗ trợ ứng dụng của chúng tôi.
from django.contrib import admin
from blogsite.models import Post
from blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)
Khi bạn hài lòng với tệp, hãy lưu và thoát.
Bây giờ bạn đã đăng ký các mô hình Post
và Comment
bên trong bảng quản trị. Điều này sẽ cho phép giao diện quản trị chọn các mô hình này và hiển thị chúng cho người dùng đã đăng nhập và xem bảng điều khiển quản trị.
Bây giờ bạn đã thêm mã Python có liên quan, hãy chạy máy chủ. Mở http://your-server-ip:8000/admin
và đăng nhập vào quản trị viên bằng thông tin đăng nhập của bạn nếu bạn chưa đăng nhập. Trong hướng dẫn này, chúng tôi đã đăng nhập bằng tên người dùng admin_user
và mật khẩu admin123
.
Bây giờ bạn đã đăng nhập, bạn sẽ được phục vụ trang web sau. Nếu nó không thay đổi so với trước đó, bạn có thể cần làm mới trình duyệt của mình.
Điều này xác minh rằng chúng tôi hiện đã kết nối ứng dụng, blogsite
của mình với bảng điều khiển quản trị Django.
Khi bạn hoàn tất kiểm tra ứng dụng của mình, bạn có thể nhấn CTRL
+ C
để ngừng chạy máy chủ Django. Thao tác này sẽ đưa bạn trở lại môi trường lập trình của mình.
Khi bạn đã sẵn sàng rời khỏi môi trường Python của mình, bạn có thể chạy lệnh deactivate
:
- deactivate
Việc hủy kích hoạt môi trường lập trình của bạn sẽ đưa bạn trở lại dấu nhắc lệnh đầu cuối.
Trong hướng dẫn này, bạn đã kích hoạt thành công giao diện quản trị viên, tạo đăng nhập quản trị viên và đăng ký các mô hình Post
và Comment
với quản trị viên.
Giao diện quản trị Django là cách bạn có thể tạo bài đăng và theo dõi nhận xét với blog của mình.