Cách tạo chế độ xem để phát triển web Django
Nếu bạn đã theo dõi loạt bài Phát triển Django của ta , bạn đã tạo thành công ứng dụng Django cho phép user có quyền administrator thêm comment và bài đăng thông qua console giao diện admin-user của Django. Bạn cũng đã cài đặt tính ổn định của dữ liệu bằng cách tận dụng các mô hình giải pháp ánh xạ quan hệ đối tượng của MySQL và Django. Trong hướng dẫn này, ta sẽ tạo các dạng xem Django cho phép ứng dụng web của ta xử lý đúng các yêu cầu web và trả lại các phản hồi web cần thiết. Như được định nghĩa trong tài liệu Django , phản hồi web có thể là nội dung HTML của trang Web, chuyển hướng hoặc lỗi HTTP (ví dụ: 404
). Mã cho các hàm xem về mặt kỹ thuật có thể sống ở bất kỳ đâu trong dự án của bạn, miễn là nó nằm trên đường dẫn Python của bạn. Tuy nhiên, có một số quy ước phổ biến để đặt tên và đặt file trong đó các hàm xem này tồn tại và ta sẽ thực hiện theo các luật này.
Sau khi bạn hoàn tất các bước của hướng dẫn này, trang blog Django của bạn sẽ kéo một bài đăng gần đây vào URL your-IP-or-domain/post
.
Yêu cầu
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, ta sẽ đưa ra các giả định sau:
- Bạn đã cài đặt Django version 3 trở lên.
- Bạn đã kết nối ứng dụng Django của bạn với database . Ta đang sử dụng MySQL và bạn có thể đạt được kết nối này theo phần hai của loạt bài về Django, “ Cách tạo ứng dụng Django và kết nối nó với database ”.
- Bạn đang làm việc với hệ điều hành dựa trên Unix, tốt nhất là server cloud Ubuntu 20.04 vì đây là hệ thống ta đã thử nghiệm. Nếu bạn muốn cài đặt Django trên một môi trường tương tự, vui lòng tham khảo hướng dẫn của ta , “ Cách cài đặt Django và cài đặt môi trường phát triển trên Ubuntu 20.04 .
- Bạn đã cài đặt Giao diện quản trị Django của bạn . Bạn có thể thực hiện điều này theo hướng dẫn Administrator Django của ta .
Vì hướng dẫn này chủ yếu xử lý Django Views, bạn có thể làm theo ngay cả khi bạn có cài đặt hơi khác.
Bước 1 - Tạo các chức năng dạng xem
Trong terminal của bạn, trước tiên bạn cần chuyển vào folder có liên quan và kích hoạt môi trường ảo Python của bạn . Nếu bạn đã theo dõi loạt bài này, bạn có thể nhập các lệnh bên dưới. Điều quan trọng là luôn sử dụng môi trường lập trình Python khi bạn đang phát triển ứng dụng của bạn đảm bảo rằng mã của bạn được chứa và bạn đang làm việc với cài đặt phù hợp.
- cd ~/my_blog_app
- . env/bin/activate
Bây giờ môi trường ảo của bạn đã được kích hoạt, hãy chuyển đến folder blogsite
, nơi ta sẽ mở file Python và tạo hàm xem đầu tiên của ta .
- cd ~/my_blog_app/blog/blogsite
Mở file views.py
để chỉnh sửa, sử dụng nano hoặc editor mà bạn chọn.
- nano views.py
Khi mở file , file sẽ được điền bằng mã tương tự như sau:
from django.shortcuts import render # Create your views here.
Ta sẽ giữ câu lệnh nhập nhập hàm render()
từ thư viện django.shortcuts
. Hàm render()
cho phép ta kết hợp cả mẫu và ngữ cảnh để có thể trả về đối tượng HttpResponse
thích hợp. Hãy nhớ điều này vì với mọi chế độ xem ta viết, ta chịu trách nhiệm khởi tạo, điền và trả về một HttpResponse
.
Tiếp theo, ta sẽ thêm chế độ xem đầu tiên của ta để chào đón user đến trang index . Ta sẽ nhập hàm HttpResponse()
từ thư viện Django http
. Sử dụng chức năng đó, ta sẽ chuyển văn bản sẽ được hiển thị khi trang web được yêu cầu.
from django.shortcuts import render from django.http import HttpResponse def index(request): return HttpResponse('Hello, welcome to the index page.')
Sau đó, ta sẽ thêm một chức năng nữa sẽ hiển thị từng bài đăng mà ta sẽ tạo sau này trong hướng dẫn.
... def individual_post(request): return HttpResponse('Hi, this is where an individual post will be.')
Tệp views.py
cuối cùng của ta bây giờ sẽ như sau.
from django.http import HttpResponse from django.shortcuts import render def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): return HttpResponse('Hi, this is where an individual post will be.')
Khi bạn hoàn tất chỉnh sửa file , hãy nhớ lưu và thoát. Trong nano, bạn có thể nhấn CTRL
và X
, sau đó Y
, sau đó ENTER
.
Hiện tại, không có URL được chỉ định nào mà các hàm này trỏ đến, vì vậy ta sẽ phải thêm URL đó vào khối urlpatterns
trong file cấu hình URL của ta . Với các chế độ xem được thêm vào, hãy chuyển sang ánh xạ URL tới chúng qua file cấu hình này để ta có thể xem các trang mà ta đã tạo.
Bước 2 - Ánh xạ URL với Chế độ xem
Với Django, ta có thể thiết kế các URL của riêng mình để sử dụng với ứng dụng của ta . Điều này được thực hiện bằng Python thuần túy bằng cách sử dụng một file thường được gọi là URLconf hoặc file “cấu hình URL” của bạn.
Để trang web được hiển thị, trước tiên Django phải xác định module URLconf
root để sử dụng, sau đó tiến hành tìm kiếm urlpatterns
, một cấu trúc dữ liệu danh sách chứa tất cả các mẫu URL. Sau đó, Django xem qua từng mẫu URL cho đến khi tìm thấy mẫu đầu tiên phù hợp. Khi tìm thấy kết quả phù hợp, Django sẽ tìm chế độ xem được liên kết và hàm chế độ xem đó sẽ nhận dữ liệu liên quan đến mẫu URL và đối tượng HttpRequest
. Nếu có lỗi xảy ra tại bất kỳ thời điểm nào trong suốt quá trình này, thay vào đó, chế độ xem xử lý lỗi sẽ được hiển thị.
Trong phần này, ta sẽ làm việc với hai file urls.py
khác nhau trong hai folder khác nhau của ứng dụng của ta .
Khi ở trong folder ~/my_blog_app/blog/blogsite
, hãy mở file urls.py
- còn gọi là file URLconf của bạn - để chỉnh sửa. Ta sẽ sử dụng nano ở đây để chỉnh sửa file .
- nano urls.py
Thay đổi file để nó giống với file bên dưới, với danh sách urlpatterns
.
from django.urls import path from . import views urlpatterns = [ path('', views.index, name='index'), path('post/', views.individual_post, name='individual_post') ]
Khi bạn hoàn tất việc thêm các dòng trên, hãy lưu file .
Khi ta đã cập nhật file URLconf của folder blogsite
, ta sẽ đưa nó vào URLconf của folder blog
, nếu không nó sẽ không được nhận dạng. Ta cần làm điều này vì nó được đặt làm ROOT_URLCONF
trong file cài đặt của ta . Điều này nghĩa là Django đang xem URLconf của folder blog
cho urlpatterns
.
Đưa ta blogsite
URLconf trong của ta blog
URLconf, ta cần phải chuyển đến folder đó.
- cd ~/my_blog_app/blog/blog
Khi bạn ở đó, bạn có thể mở file URLconf bằng nano hoặc một editor khác mà bạn chọn.
- nano urls.py
Trong file này, ta sẽ thêm các dòng sau để bao gồm file /blogsite/urls.py
ta vừa làm việc với, được chỉ ra trong dòng thứ hai.
from django.contrib import admin from django.urls import include, path urlpatterns = [ path('admin/', admin.site.urls), path('', include('blogsite.urls')) ]
Lưu và đóng file .
Bây giờ, hãy mở trình duyệt web để chuyển đến các URL ta đã tạo và xác minh chúng hiển thị văn bản mà ta đã thêm vào các dạng xem. Ta cần chuyển vào folder mẹ để truy cập vào file manage.py
cung cấp ứng dụng Django.
- cd ..
Đưa ra lệnh sau. Bạn có thể thay thế 0.0.0.0
bằng địa chỉ IP của bạn bên dưới.
- python manage.py runserver 0.0.0.0:8000
Trong trình duyệt web , chuyển đến địa chỉ IP của bạn, cổng 8000:
your-server-ip:8000
Bạn sẽ nhận được một trang web tương tự như sau:
Tiếp theo, chuyển đến URL sau:
your-server-ip:8000/post/
Từ đây, trang web sau sẽ được hiển thị:
Bây giờ ta đã xác minh hai file urls.py
hoạt động và dữ liệu cho ta thấy chính xác những gì ta mong đợi. Với việc này, hãy thêm một số dữ liệu thực vào blog của ta .
Bước 3 - Tạo Blogpost
Đến đây bạn đã hiểu các nguyên tắc cơ bản về cách hoạt động của các mẫu và chế độ xem URL, hãy thêm một bài đăng trên blog và hiển thị bài đăng đó trên trang web thay vì văn bản mà ta đã mã hóa cứng vào các file Python.
Ta sẽ tạo một bài đăng thông qua trang quản trị mà ta đã cài đặt trước đó . Với server của bạn đang cung cấp ứng dụng Django, hãy sử dụng trình duyệt web để chuyển đến trang Blogsite
quản trị tại:
your-server-ip:8000/admin/blogsite/
Trong giao diện, hãy nhấp + Add
liên kết + Add
nằm trong hàng Posts
để bắt đầu đưa vào database một bài đăng blog mẫu.
Khi nhấp vào liên kết, bạn sẽ nhận được một biểu mẫu đầu vào như sau:
Khi nào bạn muốn thêm một bài đăng, bạn sẽ vào trang này để thực hiện . Ngoài ra, bạn có thể chỉnh sửa bài đăng bằng liên kết Change
.
Trong biểu mẫu, bạn có thể chỉnh sửa các trường sau:
Cánh đồng | Nội dung |
---|---|
Title | Thêm tiêu đề bài đăng blog mong muốn của bạn tại đây, ví dụ My First Blog Post . |
Slug | Điều này đề cập đến một phần của URL xác định phần tử địa chỉ web hợp lệ với các từ khóa con người có thể đọc được. Điều này thường bắt nguồn từ tiêu đề của trang, vì vậy trong trường hợp này, ta có thể sử dụng my-first-blog-post . |
Content | Đây là phần nội dung của bài đăng trên blog của bạn. Ta sẽ chỉ thêm Hello, World! cho mục đích ví dụ, nhưng đây là nơi bạn có thể dài dòng. |
Author | Trong trường này, hãy thêm tên hoặc tên user có liên quan của bạn. Ta sẽ sử dụng Sammy . |
Điền vào biểu mẫu bài đăng trên blog khi bạn thấy phù hợp với mục đích thử nghiệm của bạn .
Khi bạn đã thêm dữ liệu mẫu vào trang, hãy nhấp vào nút SAVE
. Bạn sẽ nhận được trang xác nhận sau:
Xin chúc mừng! Bạn đã tạo bài đăng blog đầu tiên của bạn !
Tiếp theo, hãy xác minh nó đã thêm một hàng vào database MySQL có chứa dữ liệu ta vừa nhập vào giao diện quản trị.
Bước 4 - Hiển thị Dữ liệu Database
Đến đây, ta cần chuyển sang MySQL, vì vậy hãy dừng quá trình server hiện tại thông qua terminal bằng lệnh CTRL + C
, sau đó mở trình thông dịch MySQL của bạn. User của ta cho database ứng dụng Django của ta là djangouser
, nhưng hãy đảm bảo sử dụng đúng user cho dự án của bạn.
- mysql -u djangouser
Khi bạn đang ở trong dấu nhắc MySQL, hãy chuyển vào database blog_data
(hoặc database phù hợp với dự án của bạn):
- use blog_data;
Sau đó, hiển thị nội dung của bảng blogsite_post
.
- select * from blogsite_post;
Bạn sẽ nhận được kết quả tương tự như sau, sẽ hiển thị thông tin bạn đã thêm vào giao diện admin-user .
Output+----+--------------------+--------------------+---------------+----------------------------+--------+ | id | title | slug | content | created_on | author | +----+--------------------+--------------------+---------------+----------------------------+--------+ | 1 | My First Blog Post | my-first-blog-post | Hello, World! | 2020-05-14 00:30:03.186564 | Sammy | +----+--------------------+--------------------+---------------+----------------------------+--------+ 1 row in set (0.00 sec)
Như trong kết quả , có một hàng với dữ liệu cho bài đăng mà ta đã thêm. Bây giờ ta hãy tham chiếu dữ liệu này vào chức năng xem bài viết. Sử dụng CTRL + D
để thoát trình thông dịch MySQL.
Điều hướng đến vị trí của file views.py
bên trong ứng dụng blogsite
của bạn.
- cd ~/my_blog_app/blog/blogsite
Bây giờ hãy mở file để ta có thể bao gồm dữ liệu mới của bạn .
- nano views.py
Chỉnh sửa file để giống với file bên dưới.
from django.shortcuts import render from django.http import HttpResponse from .models import Post def index(request): return HttpResponse('Hello, welcome to the index page.') def individual_post(request): recent_post = Post.objects.get(id__exact=1) return HttpResponse(recent_post.title + ': ' + recent_post.content)
Trong đoạn mã trên, ta đã thêm một câu lệnh import
bổ sung cho Post
. Ta cũng đã xóa chuỗi được trích dẫn khỏi HttpResponse
và thay thế nó bằng dữ liệu từ bài đăng trên blog của ta . Để tham chiếu dữ liệu cho một đối tượng cụ thể, ta đang sử dụng ID bài đăng trên blog được liên kết với đối tượng mà ta muốn hiển thị và ta đang lưu trữ ID đó trong một biến có tên là recent_post
. Sau đó, ta có thể lấy các trường cụ thể của đối tượng đó bằng cách thêm trường bằng dấu phân cách.
Khi bạn đã lưu file , hãy chuyển đến vị trí của file manage.py
để chạy ứng dụng Django.
- cd ~/my_blog_app/blog
- python manage.py runserver 0.0.0.0:8000
Từ trình duyệt web, chuyển đến địa chỉ sau:
your-server-ip:8000/post/
Tại đây, ta sẽ thấy những thay đổi mà ta đã thực hiện; trang sẽ tương tự như thế này, hiển thị văn bản bạn đã thêm vào bài đăng.
Khi bạn hoàn tất việc kiểm tra trang, nhấn CTRL + C
trong terminal để dừng quá trình chạy.
Để hủy kích hoạt môi trường lập trình của bạn, bạn có thể nhập lệnh deactivate
và sau đó thoát khỏi server .
Kết luận
Trong hướng dẫn này, ta đã tạo các dạng xem, các mẫu URL được ánh xạ và văn bản hiển thị trên một trang web từ database bài đăng trên blog của ta .
Hướng dẫn tiếp theo sẽ trình bày cách thực sự làm cho điều này đẹp hơn về mặt thẩm mỹ bằng cách sử dụng HTML để tạo các mẫu Django. Lúc này, loạt bài này đã bao gồm các mô hình Django và quan điểm Django. Mẫu là phần quan trọng cuối cùng khi nói đến nền tảng của ứng dụng Django của bạn.
Các tin liên quan
Cách tạo chế độ xem để phát triển web Django2020-05-14
Cách tạo ứng dụng web bằng Flask trong Python 3
2020-04-16
Cách tạo web server trong Node.js bằng module HTTP
2020-04-10
Mã thông báo web JSON (JWT) trong Express.js
2020-02-19
Phát triển bản địa với API thông báo web
2020-02-12
Cách tạo ứng dụng chuyển văn bản thành giọng nói với API giọng nói trên web
2019-12-12
Cách tạo băng chuyền image danh mục đầu tư với các thanh trượt được đồng bộ hóa trên trang web
2019-12-12
Cách tạo thông báo trên web bằng kênh Laravel và Pusher
2019-12-12
Khả năng truy cập web cho người mới bắt đầu
2019-12-12
Cách cài đặt web server OpenLiteSpeed trên Ubuntu 18.04
2019-12-02