Xây dựng trang web tương tác với Python

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

2
70. Từ tài liệu Python

Mô-đun

2
71 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
2
1

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
1

Cấ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

2
72 để 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
2
73 và
2
74 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

2
75 mà chúng ta đã thấy trước đó tới tập lệnh
2
76, 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

2
77 trong cài đặt. tập tin py

1
mkdir Django_projects
3
2
_______35
3
mkdir Django_projects
7
mkdir Django_projects
8
mkdir Django_projects
9
2
0
2
1
2
2
2
3
2
4
2
5
2
6
2
7
2
8
2
9

Đố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
1
2
3
cd Django_projects
4
mkdir Django_projects
8
cd Django_projects
6
2
0
cd Django_projects
8
2
2
3
0
2
4
3
2

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
3
4

Để kiểm tra xem cài đặt có thành công hay không, hãy sử dụng

1
3
6

Điều này sẽ trả lại một cái gì đó như thế này

1
3
8

Bây giờ, hãy tạo cơ sở dữ liệu MySQL cho dự án Django. Chạy MySQL với

2
78 và tại dấu nhắc, hãy nhập

1
python3.8 -m venv env
0
2
python3.8 -m venv env
2
3
python3.8 -m venv env
4
mkdir Django_projects
8
2
0
python3.8 -m venv env
7

Khởi động máy chủ phát triển

Bây giờ bạn có thể chạy

2
79 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

2
80

Bạn cần thay đổi cài đặt cơ sở dữ liệu trước

1
python3.8 -m venv env
9
2
1
1
3
1
3
mkdir Django_projects
8
1
5
2
0
1
7
2
2
1
9
2
4
source env/bin/activate
1
2
6
source env/bin/activate
3
2
8
source env/bin/activate
5
source env/bin/activate
6
source env/bin/activate
7

Bâ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
9
2
2
1
3
2
3
mkdir Django_projects
8
2
5
2
0

Bây giờ, hãy chạy di chuyển để tạo các bảng trong cơ sở dữ liệu

1
2
8
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
2
12

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
2
14
2
2
16
3
mkdir Django_projects
8
2
19
2
0
mkdir Django_projects
01
2
2
mkdir Django_projects
03
2
4
2
9

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____0
3
mkdir Django_projects
10
mkdir Django_projects
8
2
0
mkdir Django_projects
13
2
2
mkdir Django_projects
15

Tạ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
17
2
mkdir Django_projects
19
3
mkdir Django_projects
21
mkdir Django_projects
8
mkdir Django_projects
23
2
0
mkdir Django_projects
25

Thêm đoạn mã sau vào chỉ mục. html.  

1
mkdir Django_projects
27
2
3
mkdir Django_projects
30
mkdir Django_projects
8
2
0
mkdir Django_projects
33
2
2
mkdir Django_projects
35
2
4
mkdir Django_projects
37
2
6
mkdir Django_projects
39
2
8
mkdir Django_projects
41
source env/bin/activate
6
mkdir Django_projects
43
mkdir Django_projects
44
mkdir Django_projects
45
mkdir Django_projects
46
mkdir Django_projects
47
mkdir Django_projects
48
mkdir Django_projects
49
mkdir Django_projects
50
mkdir Django_projects
51
mkdir Django_projects
52
mkdir Django_projects
53
mkdir Django_projects
54
mkdir Django_projects
55
mkdir Django_projects
56
mkdir Django_projects
57
mkdir Django_projects
58
mkdir Django_projects
59
mkdir Django_projects
60
mkdir Django_projects
61
mkdir Django_projects
62
mkdir Django_projects
63
mkdir Django_projects
64
mkdir Django_projects
65
mkdir Django_projects
66
mkdir Django_projects
67

Bâ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
69
2
3
mkdir Django_projects
72
mkdir Django_projects
8
2
0
2
19
2
2
mkdir Django_projects
77
2
4
mkdir Django_projects
79
2
6
mkdir Django_projects
77
2
8
mkdir Django_projects
83
source env/bin/activate
6
2
9
mkdir Django_projects
44
mkdir Django_projects
45

Bâ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
49
2
_______351
3
mkdir Django_projects
93
mkdir Django_projects
8
mkdir Django_projects
95
2
0
mkdir Django_projects
97
2
2
2
4
mkdir Django_projects
60

Sau đó, 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
13
2
2
04
3
2
06
mkdir Django_projects
8
2
08
2
0
2
10
2
2
2
12
2
4
source env/bin/activate
5
2
6
2
16
2
8

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
2
21
3
2
23
mkdir Django_projects
8

Tiếp theo, hãy cập nhật mẫu để truy cập dữ liệu này

_______ 2

mkdir Django_projects
46
2
3
2
29
mkdir Django_projects
8
2
31
2
0
2
33
2
2
2
35
2
4
2
37
2
6
2
39
2
8
2
41
source env/bin/activate
6
2
43
mkdir Django_projects
44
2
45
mkdir Django_projects
45
2
47
mkdir Django_projects
47
2
49
mkdir Django_projects
_______348
2
53_____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

2
81 của bạn, chúng tôi sẽ đăng ký mô hình
2
82 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
2
14
2
mkdir Django_projects
10
3
mkdir Django_projects
8
2
63
2
0
2
2
2
66

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

2
83 hoặc
2
84

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

2
85, 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
2
86 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+

Chúng tôi có thể tạo trang web động bằng Python không?

Tạo trang web động bằng CGI và tạo thư viện gồm các trang HTML một phần để sử dụng trong tác vụ này. Xây dựng các trang web động bằng SSI và các chương trình Python phụ trợ để nâng cao chức năng của SSI .

Chúng ta có thể xây dựng web và ứng dụng bằng Python không?

Python là một trong những ngôn ngữ được sử dụng rộng rãi để xây dựng các ứng dụng web . Bạn có thể sử dụng nó để thực hiện một số nhiệm vụ; . Bạn có thể sử dụng Python để xây dựng các ứng dụng web theo nhiều cách, chẳng hạn như cho các ứng dụng web phía máy chủ, API web RESTful, v.v.

PyWebIO là gì?

PyWebIO cung cấp một tập hợp đa dạng các chức năng bắt buộc để lấy nội dung đầu vào và đầu ra của người dùng trên trình duyệt, biến trình duyệt thành một “thiết bị đầu cuối văn bản đa dạng thức” và có thể được sử dụng để xây dựng các ứng dụng web đơn giản hoặc ứng dụng GUI dựa trên trình duyệt

Chủ Đề