Cách kích hoạt và kết nối giao diện Django Admin

6 năm trước

 

Giới thiệu

Cho đến nay, trong loạt bài Django, bạn đã tạo ra ứng dụng Django, kết nối ứng dụng với MySQL và tạo ra các model 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 ta sẽ kết nối và kích hoạt trang Django Admin để bạn có thể quản lý trang blog của mình. Trang web Django admin đượ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à các cá nhân đáng tin cậy khác quản lý nội dung trang web.

Cần lưu ý rằng 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 việc sử dụng nội bộ của một tổ chức, nhưng không nên xây dựng một ứng dụng web xung quanh giao diện tự động Django admin. Nếu thấy rằng giao diện của bạn cần phải có nhiều quy trình trung tâm hơn hoặc chứng minh để tóm tắt các chi tiết cài đặt của các bảng và trường cơ sở dữ liệu, tốt nhất bạn nên viết quan điểm của riêng mình cho phía quản trị viên.

 

Điều kiện tiên quyết

Hướng dẫn này là một phần của các bài viết về Sự khai triển Django.

Để hoàn thành hướng dẫn này, bạn nên cài đặt Django và thiết lập môi trường phát triển, tạo ứng dụng Django và kết nối nó với cơ sở dữ liệu MySQL và tạo Django model.

 

Bước 1 - Kích hoạt Admin

Đầu tiên, kích hoạt môi trường ảo Python:

cd ~/my_blog_app
. env/bin/activate

 

Để kích hoạt Admin Django, chúng ta cần thêm nó vào 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:

(env) sammy@ubuntu: cd ~/my_blog_app/blog/blog/

Từ đâ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.

(env) sammy@ubuntu: nano settings.py

Phần INSTALLED_APPS của tệp sẽ trông giống như sau:

settings.py
...# Application definitionINSTALLED_APPS = [
'blogsite',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
...

Hãy chắc chắn lưu và đóng tệp nếu bạn đã thực hiện thay đổi.

Bây giờ có thể mở tập tin urls.py một lần nữa với nano hoặc trình soạn thảo văn bản khác.

(env) sammy@ubuntu:nano urls.py

Tệp sẽ trông giống như sau:

urls.py
...from django.urls import pathfrom django.contrib import admin
urlpatterns = [
path('admin/', admin.site.urls),]

Kể từ khi phát hành Django 2.0, chức năng django.url.path () mới là một sự cải tiến theo cách cũ của việc tạo ra các mẫu url với hàm url(). Hàm path() cho phép cú pháp định tuyến URL đơn giản hơn, dễ đọc hơn.

Dưới đây là ví dụ minh họa điều này. Hàm url() cũ được minh họa ở đây:

url(r'^articles/(?P[0-9]{4})/$', views.year_archive),

Bây giờ có thể được viết với hàm path():

path('articles//', views.year_archive),

Cú pháp mới cũng hỗ trợ ép buộc tham số URL. Year keyword của ví dụ trên sẽ được hiểu là int so với string.

Bây giờ chúng ta đã đảm bảo Django web project có mã thích hợp trong các tập tin settings.py và urls.py, chúng ta biết ứng dụng sẽ có quyền truy cập vào các admin model và giao diện admin user.

 

Bước 2 - Xác minh Admin là ứng dụng đã cài đặt

Tiếp theo chúng ta sẽ di chuyển các models đến cơ sở dữ liệu để nó chọn lên các Admin model mới được thêm vào.

Điều hướng đến thư mục chứa tập tin manage.py.

(env) sammy@ubuntu: 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 các models, như sau.

(env) sammy@ubuntu: python manage.py migrate

Khi chạy lệnh, chúng ta sẽ nhận được kết quả sau vì admin model đã được thêm vào như chúng ta đã thấy khi điều hướng đến các phần INSTALLED_APPS của tệp settings.py.

OutputOperations to perform: 
Apply all migrations: admin, auth, blogsite, contenttypes, sessions 
Running migrations: 
No migrations to apply.
 

Bây giờ có thể khởi động server bằng cách chạy lệnh sau với địa chỉ server IP của bạn.

(env) sammy@ubuntu:python manage.py runserver your-server-ip:8000

Sau đó điều hướng đến URL bảng điều khiển quản trị trong trình duyệt bạn chọn:

http://your-server-ip:8000/admin/

Bạn sẽ thấy tương tự như thế này.

Django Admin Login Screen

Từ màn hình này cho thấy rằng chúng ta đã bật thành công ứng dụng admin.

Mặc dù đã bật ứng dụng, ngay bây giờ chúng ta không có tài khoản quản trị Django. Chúng tacần tạo tài khoản admin để đăng nhập.

 

Bước 3 - Tạo tài khoản Amin Super-User.

Bạn sẽ thấy trang đăng nhập bật lên, nhưng chúng ta không có thông tin đăng nhập để đăng nhập. Việc tạo các thông tin đăng nhập này rất đơn giản.

Django cung cấp một cách dễ dàng để tạo một tài khoản super-user mà có thể thực hiện bằng cách chạy tệp manage.py để bắt đầu quy trình tạo super-user:

(env) sammy@ubuntu:python manage.py createsuperuser

Khi chúng ta làm như vậy, chúng ta sẽ được nhắc điền thông tin chi tiết cho username, email và password. Trong hướng dẫn này, chúng ta sẽ tạo một tài khoản admin với username admin_user, email sammy@example.com và password 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_userEmail address:sammy@example.com
 

Sau đó đặt password của bạn hai lần khi bạn thấy dấu nhắc Password:. Bạn sẽ không thấy các tổ hợp phím hoặc password khi nhập nó. Nhấn enter sau mỗi lời nhắc để xác nhận password .

OutputPassword:
Password (again):
 

At this point, we now have an admin account with the username  and the password .Tại thời điểm này, chúng ta hiện có tài khoản admin với username admin_user và password admin123.

Hãy đăng nhập và xem có những gì trên trang admin.
Nếu cần, hãy điều hướng trở lại URL http://your-server-ip:8000/admin/ để đến trang đăng nhập admin. Sau đó đăng nhập bằng username và password bạn vừa tạo.

Sau khi đăng nhập thành công, bạn sẽ thấy trang như sau:

Django Admin Panel

Tiếp theo, chúng ta sẽ cần phải làm việc trên kết nối ứng dụng blog với bảng admin.

 

Bước 4 - Tạo mẫu URL cho Post và Comment

Ở bước trước, chúng ta đã đăng nhập thành công vào giao diện admin, nhưng bạn có thể nhận thấy rằng ứng dụng blog vẫn không hiển thị ở đó. Vì vậy, bây giờ chúng ta phải đi và thay đổi điều đó bằng cách thêm và đăng ký ứng dụng blog của với các model liên kết Post và Comment.

Để thực hiện điều này, tạo một tệp rỗng có tên urls.py, trong thư mục blogsite, như sau:

(env) sammy@ubuntu:touch ~/my_blog_app/blog/blogsite/urls.py

Trong tệp này, thêm mẫu URL cho ứng dụng blog của để có thể truy cập thông qua giao diện admin.

Điều hướng đến vị trí của tệp urls.py vừa tạo.

(env) sammy@ubuntu:cd ~/my_blog_app/blog/blogsite/
  •  

Sau đó, mở tập tin với nano, ví dụ.

(env) sammy@ubuntu:nano urls.py
  •  

Thêm các dòng code sau vào tệp.

urls.py
from django.urls import pathfrom . 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 truy cập các chế độ views cho Posts và Comments. Chúng ta chưa tạo các views đó nhưng sẽ trình bày về sau trong loạt bài này.

 

Bước 5 - Kết nối ứng dụng Blog với Admin

Việc kết nối blog với admin sẽ cho phép chúng ta xem các liên kết cho cả Posts và Comments trong bảng điều khiển admin. Như chúng ta đã thấy trước đây, trang tổng quan hiện chỉ hiển thị các liên kết cho Groups và Users.

Để thực hiện điều này, chúng ta cần phải đăng ký các Posts và Comments model bên trong tệp admin của blogsite.

Điều hướng đến thư mục blogsite:

(env) sammy@ubuntu:cd ~/my_blog_app/blog/blogsite

Sau đó, tạo tệp admin.py:

(env) sammy@ubuntu:touch admin.py

Khi bạn đã hoàn tất, hãy mở tệp:

(env) sammy@ubuntu:nano admin.py

Và chỉnh sửa tệp để chứa code sau.

admin.py
from django.contrib import adminfrom blogsite.models import Postfrom blogsite.models import Comment
admin.site.register(Post)
admin.site.register(Comment)

Lưu và thoát tệp.

Bây giờ bạn đã đăng ký Post và Comment model bên trong bảng admin. Điều này sẽ cho phép giao diện admin chọn các model và hiển thị cho user đã đăng nhập và xem trang tổng quan admin.

 

Bước 6 - Xác minh rằng Ứng dụng Blog đã được thêm vào Admin

Bây giờ bạn đã thêm code Python, hãy chạy máy chủ. Mở http://your-server-ip:8000/admin và đăng nhập vào admin 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 username admin_user và password admin123.

Bây giờ bạn đã đăng nhập, bạn sẽ thấy trang web sau khi chạy server.

Django Admin Panel with Models Added

Điều này cho thấy rằng chúng ta đã kết nối ứng dụng, blogsite với bảng điều khiển Django admin.

Khi bạn đã hoàn thành việc thử nghiệm ứng dụng của mình, bạn có thể nhấn CTRL + C để dừng lệnh runserver. Điều này sẽ đưa bạn trở lại môi trường lập trình.

Khi bạn đã sẵn sàng rời khỏi môi trường Python, bạn có thể chạy lệnh deactivate:

(env) sammy@ubuntu:deactivate

Việc hủy kích hoạt môi trường lập trình sẽ đưa bạn trở lại dấu nhắc lệnh thiết bị đầu cuối.

 

Kết luận

Trong hướng dẫn này, bạn đã bật thành công giao diện admin, tạo thông tin đăng nhập admin và đăng ký Post và Comment model với admin.

Giao diện Django admin là cách bạn có thể tạo bài đăng và theo dõi nhận xét bằng blog của mình.

Sắp tới trong loạt bài này, chúng ta sẽ tạo ra các views cho ứng dụng blog.

Tìm hiểu nhiều điều thú vị khác tại Vicloud!