Làm cách nào để bạn bắt đầu tạo trang web bằng Python? . Tuy nhiên, đó là rất nhiều công việc, vậy tại sao lại gặp rắc rối khi có rất nhiều công cụ hiện có để thực hiện công việc đó cho bạn?
Khung Python
Có khá nhiều khung web Python, nhưng đây là một số khung tốt nhất
- Django. Hôm nay chúng ta sẽ sử dụng cái này. Nó có một bộ tính năng khổng lồ, nhưng vẫn đơn giản để sử dụng. Tài liệu cũng rất xuất sắc, vì vậy nếu bạn gặp khó khăn, bạn sẽ có thời gian dễ dàng nhất để giải quyết vấn đề của mình với Django
- Bình giữ nhiệt. Flask là một khung vi mô ứng dụng web nhẹ được thiết kế để giúp dễ dàng bắt đầu do có nhiều tiện ích mở rộng giúp thêm chức năng mới dễ dàng
- API nhanh. FastAPI là một khung web hiện đại, hiệu suất cao để xây dựng API với Python 3. 6+. Nó cũng dễ sử dụng và cung cấp tính năng tự động hoàn thành và linting, giúp viết mã nhanh hơn so với các khung khác
- Chim ưng. Falcon là một khung web tối giản để xây dựng các API web và back-end ứng dụng nhanh. Falcon cung cấp một thiết kế rõ ràng sử dụng kiểu kiến trúc HTTP và REST để xây dựng API một cách nhanh chóng
Bạn có thể tìm thấy danh sách đầy đủ hơn trên trang web Python nếu bạn cần các tùy chọn bổ sung. Hôm nay chúng ta sẽ thiết lập Django để phát triển trên máy cục bộ, sau đó xây dựng một blog đơn giản. Chúng tôi cũng sẽ xem xét quá trình cài đặt nó trên một máy chủ web từ xa
Cài đặt Django
Chúng tôi sẽ thực hiện hầu hết công việc của mình ngày hôm nay trong thiết bị đầu cuối. Tất cả điều này sẽ hoạt động trên Mac và Linux; . Việc làm quen với dòng lệnh là không cần thiết nếu bạn chỉ viết Python, mặc dù nếu bạn dự định sử dụng Django hoặc điều hành một trang web động nói chung thì bạn nên học
Hướng dẫn thiết bị đầu cuối
Cân nhắc xem lại các hướng dẫn này để bắt đầu và chạy với Terminal
- Phần giới thiệu về cách làm việc trong thiết bị đầu cuối, bao gồm cả Git và GitHub
- 10 mẹo để làm việc nhanh hơn trong terminal
Dưới đây là các lệnh bạn cần để cài đặt Django. Bạn sẽ cần cài đặt phiên bản Python 3 để chạy nó. Trước tiên, bạn cần tạo một môi trường ảo với mô-đun
270. Từ tài liệu Python
Mô-đun
271 cung cấp hỗ trợ để tạo “môi trường ảo” nhẹ với các thư mục trang web của riêng chúng, tùy chọn tách biệt khỏi các thư mục trang web hệ thống. Mỗi môi trường ảo có tệp nhị phân Python riêng [khớp với phiên bản của tệp nhị phân được sử dụng để tạo môi trường này] và có thể có bộ gói Python đã cài đặt độc lập riêng trong thư mục trang của nó
Tạo thư mục dự án và môi trường ảo bên trong thư mục dự án
1
mkdir Django_projects
2
cd Django_projects
3
python3.8 -m venv env
Kích hoạt môi trường ảo và tạo một dự án Django mới
1
source env/bin/activate
2
21
Thư mục dự án trông như thế này
Mỗi tập tin này làm gì?
- __trong đó__. py cho Python biết rằng thư mục này là một gói Python. Chúng tôi đã học về những điều này trong bài học thứ ba;
- quản lý. py không thực sự là một phần của trang web của bạn; . Nó chứa một loạt các chức năng để quản lý trang web của bạn
- cài đặt. py chứa cài đặt trang web của bạn. Django không sử dụng tệp XML để cấu hình; . Tệp này chỉ đơn giản là một số biến xác định cài đặt cho trang web của bạn
- url. py là tệp ánh xạ URL tới các trang. Ví dụ: nó có thể ánh xạ trang web của bạn. com/about đến trang Giới thiệu về chúng tôi
ứng dụng
Tuy nhiên, không có tệp nào trong số này tự tạo nên một trang web hoạt động. Để làm được điều đó, chúng ta cần các ứng dụng. Ứng dụng là nơi bạn viết mã giúp trang web của bạn hoạt động, nhưng trước khi xem xét chúng, chúng ta cần hiểu một chút về nguyên tắc thiết kế của Django
Đầu tiên, Django là một MVC framework, viết tắt của Model View Controller. Django tự coi mình là một khung MTV, viết tắt của Model Template View. Đó là một cách tiếp cận hơi khác so với MVC, nhưng về cơ bản, chúng khá giống nhau. Dù sao đi nữa, MVC là một mẫu kiến trúc cung cấp một phương pháp để cấu trúc các dự án của bạn. Nó tách mã được sử dụng để xử lý dữ liệu khỏi mã quản lý giao diện người dùng
Thứ hai, Django đăng ký triết lý DRY hoặc Don't Repeat Yourself, điều đó có nghĩa là bạn không bao giờ nên viết mã thực hiện một tác vụ nhất định nhiều lần. Ví dụ: trong blog của chúng tôi, nếu chúng tôi đã viết một tính năng chọn một bài báo ngẫu nhiên từ kho lưu trữ và triển khai tính năng này trên nhiều trang, chúng tôi sẽ không viết lại tính năng đó mỗi khi cần. Chúng tôi sẽ mã hóa nó một lần và sau đó sử dụng nó trên mỗi trang
Vì vậy, làm thế nào điều này liên quan đến các ứng dụng? . Mỗi dự án, giống như dự án chúng tôi có ở đây, có thể chứa nhiều ứng dụng. Ngược lại, mỗi ứng dụng có thể là một phần của nhiều dự án. Sử dụng ví dụ từ trước, điều này có nghĩa là nếu chúng tôi tạo một trang web khác trong tương lai cũng cần tính năng trang ngẫu nhiên, chúng tôi sẽ không phải viết lại từ đầu. Chúng tôi chỉ có thể nhập ứng dụng từ dự án này
Do đó, điều quan trọng là mỗi ứng dụng phải phục vụ một mục đích riêng biệt. Nếu bạn viết tất cả chức năng của trang web của mình trong một ứng dụng và sau đó bạn cần sử dụng lại một phần của nó sau đó, bạn phải nhập tất cả. Ví dụ: nếu bạn đang tạo một trang web Thương mại điện tử, bạn sẽ không muốn nhập tất cả các tính năng của blog. Tuy nhiên, nếu bạn tạo một ứng dụng cho tính năng ngẫu nhiên và một ứng dụng cho hệ thống xuất bản blog, bạn có thể chọn các bit mà bạn yêu cầu
Điều này cũng có nghĩa là trong trang web, mã được tổ chức tốt. Nếu bạn muốn thay đổi một tính năng, bạn không cần phải tìm kiếm trong một tệp lớn;
1
mkdir Django_projects
1Cấu trúc thư mục bây giờ trông như thế này
Một lần nữa, chúng tôi có một tệp
272 để biến nó thành một gói và ba tệp khác. mô hình, thử nghiệm và quan điểm. Hiện tại chúng ta không cần phải lo lắng về các bài kiểm tra, nhưng hai điều còn lại rất quan trọng. Mô hình và Chế độ xem là các phần
273 và
274 của MVC
Trong các mô hình, chúng tôi xác định cấu trúc dữ liệu của mình
Nếu bạn đã từng làm việc với PHP trước đây, bạn có thể đã sử dụng PhpMyAdmin để tạo các bảng MySQL của mình, sau đó viết các truy vấn SQL theo cách thủ công trong các tập lệnh PHP của bạn. Ở Django, nó dễ dàng hơn nhiều. Chúng tôi xác định tất cả các cấu trúc dữ liệu chúng tôi cần trong tệp mô hình này, sau đó chạy một lệnh và tất cả các cơ sở dữ liệu cần thiết được tạo cho chúng tôi
Khi bạn muốn truy cập dữ liệu đó, bạn đi qua các mô hình này bằng cách gọi một phương thức trên chúng, thay vì chạy các truy vấn thô. Điều này rất hữu ích vì Django có thể sử dụng một số chương trình cơ sở dữ liệu. Hôm nay chúng ta sẽ sử dụng MySQL vì nó mạnh nhất và là thứ mà hầu hết các máy chủ cung cấp, nhưng nếu chúng ta cần chuyển sang một cơ sở dữ liệu khác trong tương lai, thì tất cả mã vẫn hợp lệ. Trong các ngôn ngữ khác, nếu bạn muốn chuyển sang SQLite hoặc thứ gì đó tương tự, bạn cần phải viết lại mã truy cập cơ sở dữ liệu của mình
Trong tệp lượt xem, chúng tôi viết mã thực sự tạo ra các trang web. Điều này liên kết tất cả các phần khác lại với nhau. Khi người dùng nhập một URL, nó sẽ được gửi bởi tập lệnh
275 mà chúng ta đã thấy trước đó tới tập lệnh
276, tập lệnh này sau đó sẽ lấy dữ liệu liên quan từ các mô hình, xử lý và chuyển nó vào một mẫu, cuối cùng mẫu này sẽ được cung cấp dưới dạng trang . Chúng tôi sẽ sớm xem xét các mẫu đó. Chúng là phần dễ nhất—chủ yếu là HTML
Thêm ứng dụng blog vào danh sách
277 trong cài đặt. tập tin py
1
mkdir Django_projects
32_______35
3
mkdir Django_projects
7mkdir Django_projects
8mkdir Django_projects
920
21
22
23
24
25
26
27
28
29
Đối với một blog, chúng tôi sẽ cần một bảng các bài đăng, với một số trường cho tiêu đề, nội dung, tác giả, thời gian viết, v.v. Một blog thực sự sẽ có bình luận, nhưng điều đó nằm ngoài phạm vi của bản demo ngày nay
1
cd Django_projects
12
3
cd Django_projects
4mkdir Django_projects
8cd Django_projects
620
cd Django_projects
822
30
24
32
mysql
Những mô hình này chỉ là một mô tả. Chúng ta cần tạo một cơ sở dữ liệu thực tế từ chúng. Tuy nhiên, trước tiên, chúng tôi cần MySQL chạy trên hệ thống của chúng tôi. Trên một máy chủ web thực tế, đây không phải là vấn đề, vì chúng thường được cài đặt sẵn.
Để cài đặt MySQL, gõ
1
34
Để kiểm tra xem cài đặt có thành công hay không, hãy sử dụng
1
36
Điều này sẽ trả lại một cái gì đó như thế này
1
38
Bây giờ, hãy tạo cơ sở dữ liệu MySQL cho dự án Django. Chạy MySQL với
278 và tại dấu nhắc, hãy nhập
1
python3.8 -m venv env0
2
python3.8 -m venv env2
3
python3.8 -m venv env4
mkdir Django_projects
820
python3.8 -m venv env7
Khởi động máy chủ phát triển
Bây giờ bạn có thể chạy
279 trong tab mới để khởi động máy chủ phát triển
Nhưng trước tiên, chúng ta cần định cấu hình cài đặt cơ sở dữ liệu. Hãy xem
280
Bạn cần thay đổi cài đặt cơ sở dữ liệu trước
1
python3.8 -m venv env9
2
11
3
13
mkdir Django_projects
815
20
17
22
19
24
source env/bin/activate
126
source env/bin/activate
328
source env/bin/activate
5source env/bin/activate
6source env/bin/activate
7Bây giờ hãy chạy máy chủ và truy cập 127. 0. 0. 1. 8000 trong trình duyệt web của bạn. Bạn sẽ thấy trang Django mặc định
Định cấu hình Blog trong Django
Bây giờ, hãy biến trang Django của chúng ta thành một blog. Trước tiên, chúng ta cần sử dụng các mô hình của mình để tạo các bảng trong cơ sở dữ liệu bằng cách tạo quá trình di chuyển sau để thực hiện các thay đổi đối với các mô hình
1
source env/bin/activate
92
21
3
23
mkdir Django_projects
825
20
Bây giờ, hãy chạy di chuyển để tạo các bảng trong cơ sở dữ liệu
1
28
2
3
Tạo một siêu người dùng
Bây giờ, bạn có thể tạo một siêu người dùng để quản lý ứng dụng Django của mình
1
212
Thiết lập URL ứng dụng
Hãy thiết lập URL cho ứng dụng trong url. tập tin py. Chúng tôi sẽ bao gồm các URL blog từ một tệp riêng biệt
1
214
2
216
3
mkdir Django_projects
8219
20
mkdir Django_projects
0122
mkdir Django_projects
0324
29
Tạo Chế độ xem Đầu tiên
Hãy tạo chế độ xem đầu tiên của chúng tôi, chế độ xem này sẽ hiển thị một trang HTML đơn giản. Mở blog/lượt xem. py và thêm đoạn mã sau
1
mkdir Django_projects
07____03
mkdir Django_projects
10mkdir Django_projects
820
mkdir Django_projects
1322
mkdir Django_projects
15Tạo mẫu xem
chỉ số này. tập tin html chưa tồn tại. Django sẽ tự động tải các mẫu từ thư mục mẫu. Tạo một thư mục có tên là các mẫu trong ứng dụng blog và bên trong đó, tạo một tệp có tên là chỉ mục. html. Thư mục thư mục sẽ trông như thế này
1
mkdir Django_projects
172
mkdir Django_projects
193
mkdir Django_projects
21mkdir Django_projects
8mkdir Django_projects
2320
mkdir Django_projects
25Thêm đoạn mã sau vào chỉ mục. html.
1
mkdir Django_projects
272
3
mkdir Django_projects
30mkdir Django_projects
820
mkdir Django_projects
3322
mkdir Django_projects
3524
mkdir Django_projects
3726
mkdir Django_projects
3928
mkdir Django_projects
41source env/bin/activate
6mkdir Django_projects
43mkdir Django_projects
44mkdir Django_projects
45mkdir Django_projects
46mkdir Django_projects
47mkdir Django_projects
48mkdir Django_projects
49mkdir Django_projects
50mkdir Django_projects
51mkdir Django_projects
52mkdir Django_projects
53mkdir Django_projects
54mkdir Django_projects
55mkdir Django_projects
56mkdir Django_projects
57mkdir Django_projects
58mkdir Django_projects
59mkdir Django_projects
60mkdir Django_projects
61mkdir Django_projects
62mkdir Django_projects
63mkdir Django_projects
64mkdir Django_projects
65mkdir Django_projects
66mkdir Django_projects
67Bây giờ, chúng tôi sẽ tạo các URL blog của chúng tôi. Tạo các url tập tin. py trong thư mục blog và viết đường dẫn URL để phục vụ trang chỉ mục
1
mkdir Django_projects
692
3
mkdir Django_projects
72mkdir Django_projects
820
219
22
mkdir Django_projects
7724
mkdir Django_projects
7926
mkdir Django_projects
7728
mkdir Django_projects
83source env/bin/activate
629
mkdir Django_projects
44mkdir Django_projects
45Bây giờ, nếu bạn điều hướng đến http. //127. 0. 0. 1. 8000/home, bạn sẽ thấy trang sau được cập nhật với nội dung mới này.
Nhúng dữ liệu từ cơ sở dữ liệu
Bước tiếp theo là thêm nội dung động từ cơ sở dữ liệu. Để thực hiện điều này, Django có một ngôn ngữ tạo khuôn mẫu cho phép bạn nhúng các biến có dấu ngoặc nhọn. Thay đổi phần giữa của trang của bạn trông như thế này
1
mkdir Django_projects
492_______351
3
mkdir Django_projects
93mkdir Django_projects
8mkdir Django_projects
9520
mkdir Django_projects
9722
24
mkdir Django_projects
60Sau đó, chúng tôi có thể chuyển các giá trị cho các trình giữ chỗ biến này từ các chế độ xem. py bằng cách tạo một từ điển các giá trị
1
mkdir Django_projects
132
204
3
206
mkdir Django_projects
8208
20
210
22
212
24
source env/bin/activate
526
216
28
Lưu và làm mới, và bạn sẽ thấy rằng bạn hiện đang chuyển nội dung sang một mẫu từ tệp dạng xem của mình. Bước cuối cùng là lấy dữ liệu từ cơ sở dữ liệu của chúng tôi và thay vào đó chuyển dữ liệu đó vào. May mắn thay, chúng ta có thể làm điều này mà không cần truy vấn SQL bằng cách sử dụng các mô hình của Django. Tới blog/lượt xem. py và cập nhật mã để lấy dữ liệu từ cơ sở dữ liệu
1____313
2
221
3
223
mkdir Django_projects
8Tiếp theo, hãy cập nhật mẫu để truy cập dữ liệu này
_______ 2
mkdir Django_projects
462
3
229
mkdir Django_projects
8231
20
233
22
235
24
237
26
239
28
241
source env/bin/activate
6243
mkdir Django_projects
44245
mkdir Django_projects
45247
mkdir Django_projects
47249
mkdir Django_projects
_______348253_____635___3 3
Tại đây, chúng tôi có thể truy cập tất cả dữ liệu trong bảng của mình trong chế độ xem. py, sau đó chỉ chọn mười mục đầu tiên. Chúng tôi chuyển dữ liệu này vào mẫu, lặp qua các mục nhập và hiển thị dữ liệu bằng HTML của trang web của chúng tôi
Hệ thống quản trị của Django
Điều cuối cùng chúng ta cần làm hôm nay là xem lại hệ thống quản trị của Django. Đây là một tính năng thực sự mạnh mẽ của Django cho phép bạn quản lý trang web của mình mà không cần viết thêm bất kỳ mã nào, như bạn sẽ phải làm nếu bạn đang tạo một trang web từ đầu. Để cho phép quản trị viên kiểm soát bảng
281 của bạn, chúng tôi sẽ đăng ký mô hình
282 của chúng tôi trong quản trị viên Django và thêm một số dữ liệu vào cơ sở dữ liệu. Mở blog/quản trị viên. py và thêm đoạn mã sau
1
214
2
mkdir Django_projects
103
mkdir Django_projects
8263
20
22
266
Bây giờ bạn có thể thêm các mục blog mới bằng cách truy cập http. //127. 0. 0. 1. 8000/admin/blog/bài đăng/
Đó là tất cả những gì phải làm. Bạn vừa tạo một blog hoạt động đầy đủ, mặc dù đơn giản. Để kết thúc bài học này, chúng ta sẽ xem xét cài đặt Django trên máy chủ web
Cài đặt trên máy chủ Web
Có hai loại lưu trữ web và loại nào bạn có sẽ ảnh hưởng đến việc bạn có thể sử dụng Django hay không. Nếu bạn đã chia sẻ dịch vụ lưu trữ, bạn hoàn toàn phụ thuộc vào máy chủ lưu trữ của mình
Nhiều máy chủ web giá rẻ không hỗ trợ Python. Mặc dù PHP gần như được đảm bảo, hỗ trợ cho các ngôn ngữ khác thường không. Bạn sẽ phải kiểm tra bảng điều khiển để xác định xem Python [và Django] có sẵn không. Rõ ràng, quá trình này hơi khác với mọi máy chủ. Hầu như tất cả các dịch vụ lưu trữ đều chạy trên Apache và chúng tôi có thể sử dụng nó để lưu trữ Django, sử dụng các mô-đun Apache
283 hoặc
284
Hầu hết các máy chủ web chạy tập lệnh bằng một số ngôn ngữ bằng CGI. Django có thể chạy trên FastCGI, và về mặt lý thuyết, trên CGI, nhưng điều này không được hỗ trợ chính thức và sẽ quá chậm đối với một trang web sản xuất thực tế. Bạn sẽ cần kiểm tra xem chúng đã được cài đặt chưa. Chúng thường được tìm thấy dưới tiêu đề, chẳng hạn như “Hỗ trợ CGI và ngôn ngữ kịch bản”
Nếu bạn có dịch vụ lưu trữ VPS hoặc đủ may mắn để có một máy chủ chuyên dụng, cuộc sống của bạn sẽ dễ dàng hơn nhiều. Thông thường, những thứ này đi kèm với Python được cài đặt sẵn và từ đó, bạn chỉ cần làm theo các bước tương tự mà chúng tôi đã thực hiện để chạy bản sao cục bộ của Django. Nếu bạn không có Python, bạn có thể cài đặt nó bằng trình quản lý gói. Hệ thống của bạn thậm chí có thể đi kèm với Django
Khi bạn đã cài đặt Django trên máy chủ của mình, hãy tải lên trang web bạn vừa tạo bằng bất kỳ ứng dụng khách truyền tệp nào. Bạn có thể đặt các tệp ở bất kỳ đâu, nhưng không để chúng ngoài thư mục
285, nếu không bất kỳ ai cũng có thể xem mã nguồn của trang web của bạn. Tôi sử dụng
286 cho tất cả các dự án của mình
Tiếp theo, tạo cơ sở dữ liệu MySQL có tên là django_blog trên máy chủ của bạn. Bạn sẽ phải tạo lại tài khoản của mình cho bảng điều khiển quản trị viên, nhưng đây là việc chỉ thực hiện một lần
Nếu bạn cố chạy chương trình này, bạn có thể gặp lỗi và đó là do cài đặt cho máy chủ khác với cài đặt trên máy tính cục bộ của bạn. Bạn có thể cần thay đổi mật khẩu cơ sở dữ liệu trong cài đặt. py, nhưng tùy thuộc vào cấu hình máy chủ của bạn, bạn cũng có thể gặp phải các vấn đề khác. Google là bạn của bạn trong những tình huống này
Để chạy máy chủ lần này, lệnh hơi khác một chút. Bạn phải chỉ định một địa chỉ IP và cổng để bạn có thể truy cập trang web qua internet
1____068
2
Nếu bạn truy cập trang web của mình trong trình duyệt web, trên cổng 8000, bạn sẽ thấy trang web của mình
Phần kết luận
Đó là nó cho bài học này. và loạt bài của chúng tôi. Tôi hy vọng bạn đã học được một số kỹ năng hữu ích trong năm bài học vừa qua và rằng bạn đã sẵn sàng tiếp tục học Python nhiều hơn nữa trong tương lai. Nếu bạn thích giao diện của Django và muốn tiếp tục nâng cao kiến thức của mình về khung, đây là một số hướng dẫn bổ sung về chủ đề này
Đi sâu vào Django
Jeff Hui
11 Tháng hai 2009
Giới thiệu về Django - Xây dựng danh sách việc cần làm
Logan Mortimer
02 Tháng hai 2009
10 mẹo Django cực kỳ hữu ích
Glen Stanberry
30 tháng 9 năm 2008
Như mọi khi, tôi rất sẵn lòng thảo luận bất kỳ câu hỏi nào về hướng dẫn này hoặc Python nói chung trong phần nhận xét. Cảm ơn vì đã đọc
Bài đăng này đã được cập nhật với sự đóng góp từ Esther Vaati. Esther là nhà phát triển và viết phần mềm cho Envato Tuts+