Trang web Flask Python

Bạn đã viết một kịch bản Python mà bạn tự hào và bây giờ bạn muốn khoe nó với cả thế giới. Nhưng bằng cách nào? . Chuyển đổi tập lệnh của bạn thành ứng dụng web Python là một giải pháp tuyệt vời để làm cho mã của bạn có thể sử dụng được cho nhiều đối tượng

Trong hướng dẫn này, bạn sẽ học cách chuyển từ tập lệnh Python cục bộ sang ứng dụng web Flask được triển khai đầy đủ mà bạn có thể chia sẻ với mọi người

Đến cuối hướng dẫn này, bạn sẽ biết

  • Ứng dụng web là gì và bạn có thể lưu trữ chúng trực tuyến như thế nào
  • Cách chuyển đổi tập lệnh Python thành ứng dụng web Flask
  • Cách cải thiện trải nghiệm người dùng bằng cách thêm HTML vào mã Python của bạn
  • Cách triển khai ứng dụng web Python của bạn lên Google App Engine

Ngoài việc xem qua một dự án ví dụ, bạn sẽ tìm thấy một số bài tập trong suốt hướng dẫn. Họ sẽ cho bạn cơ hội để củng cố những gì bạn đang học thông qua thực hành thêm. Bạn cũng có thể tải xuống mã nguồn mà bạn sẽ sử dụng để xây dựng ứng dụng web của mình bằng cách nhấp vào liên kết bên dưới

Nhận mã mẫu. Nhấp vào đây để lấy mã mẫu mà bạn sẽ sử dụng để tìm hiểu về cách tạo ứng dụng web Python bằng Flask trong hướng dẫn này

Chải lên những điều cơ bản

Trong phần này, bạn sẽ có được nền tảng lý thuyết trong các chủ đề khác nhau mà bạn sẽ làm việc trong phần thực hành của hướng dẫn này

  • Những loại phân phối mã Python tồn tại
  • Tại sao xây dựng một ứng dụng web có thể là một lựa chọn tốt
  • ứng dụng web là gì
  • Cách nội dung được phân phối qua Internet
  • Lưu trữ web có nghĩa là gì
  • Nhà cung cấp dịch vụ lưu trữ nào tồn tại và nhà cung cấp dịch vụ nào sẽ sử dụng

Tìm hiểu về các chủ đề này có thể giúp bạn cảm thấy tự tin hơn khi viết mã Python cho Web. Tuy nhiên, nếu bạn đã quen thuộc với chúng, thì cứ thoải mái bỏ qua, và bắt đầu xây dựng ứng dụng web Python của bạn

Loại bỏ các quảng cáo

Phân phối mã Python của bạn

Đưa mã của bạn đến người dùng của bạn được gọi là phân phối. Theo truyền thống, có ba cách tiếp cận khác nhau mà bạn có thể sử dụng để phân phối mã của mình để những người khác có thể làm việc với chương trình của bạn

  1. thư viện Python
  2. chương trình độc lập
  3. ứng dụng web Python

Bạn sẽ xem xét kỹ hơn từng phương pháp dưới đây

Thư viện Python

Nếu bạn đã làm việc với hệ sinh thái gói mở rộng của Python, thì có khả năng bạn đã cài đặt các gói Python với

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
6. Là một lập trình viên, bạn có thể muốn xuất bản gói Python của mình trên PyPI để cho phép những người dùng khác truy cập và sử dụng mã của bạn bằng cách cài đặt mã bằng cách sử dụng
 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
6

$ python3 -m pip install 

After you’ve successfully published your code to PyPI, this command will install your package, including its dependencies, on any of your users’ computers, provided that they have an Internet connection

If you don’t want to publish your code as a PyPI package, then you can still use Python’s built-in

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
8 command to create a source distribution or a Python wheel to create a to share with your users

Distributing your code like this keeps it close to the original script you wrote and adds only what’s necessary for others to run it. However, using this approach also means that your users will need to run your code with Python. Many people who want to use your script’s functionality won’t have Python installed or won’t be familiar with the processes required to work directly with your code

A more user-friendly way to present your code to potential users is to build a standalone program

Standalone Program

Computer programs come in different shapes and forms, and there are multiple options for transforming your Python scripts into standalone programs. Below you’ll read about two possibilities

  1. Packaging your code
  2. Building a GUI

Programs such as PyInstaller, py2app, py2exe, or Briefcase can help with packaging your code. They turn Python scripts into executable programs that can be used on different platforms without requiring your users to explicitly run the Python interpreter

Note. To learn more about packaging your code, check out Using PyInstaller to Easily Distribute Python Applications or listen to the Real Python Podcast episode Options for Packaging Your Python Application

While packaging your code can resolve dependency problems, your code still just runs on the command line. Most people are used to working with programs that provide a graphical user interface [GUI]. You can make your Python code accessible to more people by building a GUI for it

Note. There are different packages that can help you with building a GUI, including Tkinter, wxPython, and PySimpleGUI. If you want to build a native desktop-based app, then check out the learning path for Python GUI Programming

While a standalone GUI desktop program can make your code accessible to a wider audience, it still presents a hurdle for people to get started. Before running your program, potential users have a few steps to get through. They need to find the right version for their operating system, download it, and successfully install it. Some may give up before they make it all the way

It makes sense that many developers instead build web applications that can be accessed quickly and run on an Internet browser

Python Web Application

The advantage of web applications is that they’re platform independent and can be run by anyone who has access to the Internet. Their code is implemented on a back-end server, where the program processes incoming requests and responds through a shared protocol that’s understood by all browsers

Python powers many large web applications and is a common choice as a back-end language. Many Python-driven web applications are planned from the start as web applications and are built using Python web frameworks such as Flask, which you’ll use in this tutorial

However, instead of the web-first approach described above, you’re going to take a different angle. After all, you weren’t planning to build a web application. You just created a useful Python script, and now you want to share with the world. To make it accessible to a broad range of users, you’ll refactor it into a web application and then deploy it to the Internet

It’s time to go over what a web application is and how it’s different from other content on the Web

Loại bỏ các quảng cáo

Tìm hiểu về các ứng dụng web Python

Historically, websites had fixed content that was the same for every user who accessed that page. These web pages are called static because their content doesn’t change when you interact with them. When serving a static web page, a web server responds to your request by sending back the content of that page, regardless of who you are or what other actions you took

You can browse an example of a static website at the first URL that ever went online, as well as the pages it links to

The history of the WWW

Such static websites aren’t considered applications since their content isn’t generated dynamically by code. While static sites used to make up all of the Internet, most websites today are true web applications, which offer dynamic web pages that can change the content they deliver

For instance, a webmail application allows you to interact with it in many ways. Depending on your actions, it can display different types of information, often while staying in a single page

A single-page Webmail application

Python-driven web applications use Python code to determine what actions to take and what content to show. Your code is run by the web server that hosts your website, which means that your users don’t need to install anything. All they need to interact with your code is a browser and an Internet connection

Getting Python to run on a website can be complicated, but there are a number of different web frameworks that automatically take care of the details. As mentioned above, you’ll build a basic Flask application in this tutorial

In the upcoming section, you’ll get a high-level perspective on the main processes that need to happen to run your Python code on a server and deliver a response to your users

Review the HTTP Request-Response Cycle

Serving dynamic content over the Internet involves a lot of different pieces, and they all have to communicate with one another to function correctly. Here’s a generalized overview of what takes place when a user interacts with a web application

  1. Sending. First, your user makes a request for a particular web page on your web app. They can do this, for example, by typing a URL into their browser

  2. Receiving. This request gets received by the web server that hosts your website

  3. Matching. Your web server now uses a program to match the user’s request to a particular portion of your Python script

  4. Running. The appropriate Python code is called up by that program. When your code runs, it writes out a web page as a response

  5. Delivering. The program then delivers this response back to your user through the web server

  6. Viewing. Finally, the user can view the web server’s response. For example, the resulting web page can be displayed in a browser

This is a general process of how content is delivered over the Internet. The programming language used on the server, as well as the technologies used to establish that connection, can differ. However, the concept used to communicate across HTTP requests and responses remains the same and is called the HTTP Request-Response Cycle

Note. Flask will handle most of this complexity for you, but it can help to keep a loose understanding of this process in mind

To allow Flask to handle requests on the server side, you’ll need to find a place where your Python code can live online. Storing your code online to run a web application is called web hosting, and there are a number of providers offering both paid and free web hosting

Choose a Hosting Provider. Google App Engine

When choosing a web hosting provider, you need to confirm that it supports running Python code. Many of them cost money, but this tutorial will stick with a free option that’s professional and highly scalable yet still reasonable to set up. Google App Engine

Note. Google App Engine enforces daily quotas for each application. If your web application exceeds these quotas, then Google will start billing you. If you’re a new Google Cloud customer, then you can get a promotional free credit when signing up

There are a number of other free options, such as PythonAnywhere, Repl. nó hoặc Heroku mà bạn có thể khám phá sau này. Việc sử dụng Google App Engine sẽ mang lại cho bạn một khởi đầu thuận lợi khi tìm hiểu về cách triển khai mã Python cho web vì nó tạo ra sự cân bằng giữa việc trừu tượng hóa độ phức tạp và cho phép bạn tùy chỉnh thiết lập

Google App Engine là một phần của Google Cloud Platform [GCP], do Google điều hành và đại diện cho một trong những nhà cung cấp đám mây lớn, cùng với Microsoft Azure và Amazon Web Services [AWS]

Để bắt đầu với GCP, hãy tải xuống và cài đặt Google Cloud SDK cho hệ điều hành của bạn. Để có hướng dẫn bổ sung ngoài những gì bạn sẽ tìm thấy trong hướng dẫn này, bạn có thể tham khảo tài liệu của Google App Engine

Ghi chú. Bạn sẽ làm việc với môi trường tiêu chuẩn Python 3. Môi trường tiêu chuẩn của Google App Engine hỗ trợ thời gian chạy Python 3 và cung cấp một bậc miễn phí

Bản cài đặt Google Cloud SDK cũng bao gồm một chương trình dòng lệnh có tên là

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
9, sau này bạn sẽ sử dụng chương trình này để triển khai ứng dụng web của mình. Sau khi hoàn tất cài đặt, bạn có thể xác minh rằng mọi thứ đã hoạt động bằng cách nhập lệnh sau vào bảng điều khiển của mình

$ gcloud --version

Bạn sẽ nhận được một đầu ra văn bản trong thiết bị đầu cuối của mình trông giống như bên dưới

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55

Số phiên bản của bạn có thể sẽ khác, nhưng miễn là chương trình

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
9 được tìm thấy thành công trên máy tính của bạn, thì quá trình cài đặt của bạn đã thành công

Với tổng quan cấp cao về các khái niệm này và đã cài đặt Google Cloud SDK, bạn đã sẵn sàng thiết lập một dự án Python mà sau này bạn sẽ triển khai trên Internet

Loại bỏ các quảng cáo

Xây dựng một ứng dụng web Python cơ bản

Google App Engine yêu cầu bạn sử dụng khung web để tạo ứng dụng web của bạn trong môi trường Python 3. Vì bạn đang cố gắng sử dụng một thiết lập tối thiểu để tải mã Python cục bộ của mình lên Internet, nên một vi khung như Flask là một lựa chọn tốt. Việc triển khai Flask ở mức tối thiểu nhỏ đến mức bạn thậm chí có thể không nhận thấy rằng mình đang sử dụng một khung web

Ghi chú. Nếu trước đây bạn đã làm việc với Google App Engine trên Python 2. 7, thì bạn sẽ nhận thấy rằng quy trình đã thay đổi đáng kể

Hai thay đổi đáng chú ý là webapp2 đã ngừng hoạt động và bạn không còn có thể chỉ định URL cho nội dung động trong tệp

Flask==2.1.2
1. Lý do cho cả hai thay đổi này là Google App Engine hiện yêu cầu bạn sử dụng khung web Python

Ứng dụng bạn sắp tạo sẽ dựa trên một số tệp khác nhau, vì vậy điều đầu tiên bạn cần làm là tạo một thư mục dự án để chứa tất cả các tệp này

Thiết lập dự án của bạn

Tạo một thư mục dự án và đặt cho nó một cái tên mô tả về dự án của bạn. Đối với dự án thực hành này, hãy gọi thư mục

Flask==2.1.2
2. Bạn sẽ cần ba tệp trong thư mục này

  1. Flask==2.1.2
    
    3 chứa mã Python của bạn được bao bọc trong một triển khai tối thiểu của khung web Flask
  2. Flask==2.1.2
    
    4 liệt kê tất cả các phụ thuộc mà mã của bạn cần để hoạt động bình thường
  3. Flask==2.1.2
    
    1 giúp Google App Engine quyết định cài đặt nào sẽ sử dụng trên máy chủ của nó

Mặc dù ba tệp nghe có vẻ nhiều, nhưng bạn sẽ thấy rằng dự án này sử dụng ít hơn mười dòng mã trên cả ba tệp. Điều này thể hiện thiết lập tối thiểu mà bạn cần cung cấp cho Google App Engine cho bất kỳ dự án Python nào mà bạn có thể khởi chạy. Phần còn lại sẽ là mã Python của riêng bạn. Bạn có thể tải xuống mã nguồn hoàn chỉnh mà bạn sẽ sử dụng trong hướng dẫn này bằng cách nhấp vào liên kết bên dưới

Nhận mã mẫu. Nhấp vào đây để lấy mã mẫu mà bạn sẽ sử dụng để tìm hiểu về cách tạo ứng dụng web Python bằng Flask trong hướng dẫn này

Tiếp theo, bạn sẽ xem nội dung của từng tệp bắt đầu với tệp phức tạp nhất,

Flask==2.1.2
3

Tạo
Flask==2.1.2
3

Flask==2.1.2
3 là tệp mà Flask sử dụng để phân phối nội dung của bạn. Ở đầu tệp, bạn nhập lớp
Flask==2.1.2
9 ở dòng 1, sau đó bạn tạo một phiên bản của ứng dụng Flask ở dòng 3

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"

Sau khi bạn tạo Flask

runtime: python38
0, bạn viết một trình trang trí Python trên dòng 5 có tên là
runtime: python38
1 mà Flask sử dụng để kết nối các điểm cuối URL với mã có trong các hàm. Đối số của
runtime: python38
1 xác định thành phần đường dẫn của URL, là đường dẫn gốc [
runtime: python38
3] trong trường hợp này

Mã trên dòng 6 và 7 tạo thành

runtime: python38
4, được bao bọc bởi bộ trang trí. Hàm này xác định những gì sẽ được thực thi nếu điểm cuối URL đã xác định được người dùng yêu cầu. Giá trị trả về của nó xác định những gì người dùng sẽ thấy khi họ tải trang

Ghi chú. Việc đặt tên cho

runtime: python38
4 chỉ là quy ước. Nó liên quan đến cách trang chính của một trang web thường được gọi là
runtime: python38
6. Bạn có thể chọn tên hàm khác nếu muốn

Nói cách khác, nếu người dùng nhập URL cơ sở của ứng dụng web của bạn vào trình duyệt của họ, thì Flask sẽ chạy

runtime: python38
4 và người dùng sẽ thấy văn bản được trả về. Trong trường hợp này, văn bản đó chỉ là một câu.
runtime: python38
8

Bạn có thể hiển thị nội dung phức tạp hơn và bạn cũng có thể tạo nhiều chức năng để người dùng có thể truy cập các điểm cuối URL khác nhau trong ứng dụng của bạn để nhận các phản hồi khác nhau. Tuy nhiên, đối với lần triển khai ban đầu này, bạn nên gắn bó với thông báo thành công ngắn gọn và đáng khích lệ này

Tạo
Flask==2.1.2
4

Tệp tiếp theo cần xem là

Flask==2.1.2
4. Vì Flask là phần phụ thuộc duy nhất của dự án này, nên đó là tất cả những gì bạn cần chỉ định

Flask==2.1.2

Nếu ứng dụng của bạn có các phần phụ thuộc khác, thì bạn cũng cần thêm chúng vào tệp

Flask==2.1.2
4 của mình

Google App Engine sẽ sử dụng

Flask==2.1.2
4 để cài đặt các phần phụ thuộc Python cần thiết cho dự án của bạn khi thiết lập dự án trên máy chủ. Điều này tương tự như những gì bạn sẽ làm sau khi tạo và kích hoạt cục bộ một môi trường ảo mới

Loại bỏ các quảng cáo

Tạo
Flask==2.1.2
1

Tệp thứ ba,

Flask==2.1.2
1, giúp Google App Engine thiết lập môi trường máy chủ phù hợp cho mã của bạn. Tệp này chỉ yêu cầu một dòng, xác định thời gian chạy Python

runtime: python38

Dòng hiển thị ở trên làm rõ rằng thời gian chạy phù hợp cho mã Python của bạn là Python 3. 8. Điều này là đủ để Google App Engine thực hiện thiết lập cần thiết trên các máy chủ của nó

Ghi chú. Đảm bảo rằng Môi trường thời gian chạy Python 3 mà bạn muốn sử dụng có sẵn trên Google App Engine

Bạn có thể sử dụng tệp

Flask==2.1.2
1 của Google App Engine để thiết lập bổ sung, chẳng hạn như thêm các biến môi trường vào ứng dụng của bạn. Bạn cũng có thể sử dụng nó để xác định đường dẫn đến nội dung tĩnh cho ứng dụng của mình, chẳng hạn như hình ảnh, tệp CSS hoặc JavaScript. Hướng dẫn này sẽ không đi sâu vào các cài đặt bổ sung này nhưng bạn có thể tham khảo tài liệu của Google App Engine trên Tệp cấu hình
Flask==2.1.2
1 nếu bạn muốn thêm chức năng đó

Chín dòng mã này hoàn tất quá trình thiết lập cần thiết cho ứng dụng này. Dự án của bạn hiện đã sẵn sàng để triển khai

Tuy nhiên, bạn nên kiểm tra mã của mình trước khi đưa mã vào sản xuất để có thể phát hiện các lỗi tiềm ẩn. Tiếp theo, bạn sẽ kiểm tra xem mọi thứ có hoạt động cục bộ như mong đợi hay không trước khi triển khai mã của bạn lên Internet

Kiểm tra cục bộ

Flask đi kèm với một máy chủ web phát triển. Bạn có thể sử dụng máy chủ phát triển này để kiểm tra kỹ xem mã của bạn có hoạt động như mong đợi không. Để có thể chạy cục bộ máy chủ phát triển Flask, bạn cần hoàn thành hai bước. Google App Engine sẽ thực hiện các bước tương tự trên máy chủ của Google sau khi bạn triển khai mã của mình

  1. Thiết lập môi trường ảo
  2. Cài đặt gói
    $ python3 -m venv venv
    
    7

Để thiết lập môi trường ảo Python 3, hãy điều hướng đến thư mục dự án của bạn trên thiết bị đầu cuối và nhập lệnh sau

$ python3 -m venv venv

Thao tác này sẽ tạo một môi trường ảo mới có tên là

$ python3 -m venv venv
8 sử dụng phiên bản Python 3 mà bạn đã cài đặt trên hệ thống của mình. Tiếp theo, bạn cần kích hoạt môi trường ảo bằng cách tìm nguồn tập lệnh kích hoạt

$ source venv/bin/activate

Sau khi thực hiện lệnh này, lời nhắc của bạn sẽ thay đổi để cho biết rằng bạn hiện đang hoạt động từ bên trong môi trường ảo. Sau khi thiết lập và kích hoạt thành công môi trường ảo của mình, bạn đã sẵn sàng cài đặt Flask

$ python3 -m pip install -r requirements.txt

Lệnh này tìm nạp tất cả các gói được liệt kê trong

Flask==2.1.2
4 từ PyPI và cài đặt chúng trong môi trường ảo của bạn. In this case, the only package installed will be Flask

Đợi quá trình cài đặt hoàn tất, sau đó mở

Flask==2.1.2
3 và thêm hai dòng mã sau vào cuối tệp

if __name__ == "__main__":
    app.run[host="127.0.0.1", port=8080, debug=True]

Hai dòng này báo cho Python khởi động máy chủ phát triển của Flask khi tập lệnh được thực thi từ dòng lệnh. Nó sẽ chỉ được sử dụng khi bạn chạy tập lệnh cục bộ. Khi bạn triển khai mã cho Google App Engine, một quy trình máy chủ web chuyên nghiệp, chẳng hạn như Gunicorn, sẽ phục vụ ứng dụng thay thế. Bạn sẽ không cần phải thay đổi bất cứ điều gì để thực hiện điều này

Giờ đây, bạn có thể khởi động máy chủ phát triển của Flask và tương tác với ứng dụng Python trong trình duyệt của mình. Để làm như vậy, bạn cần chạy tập lệnh Python khởi động ứng dụng Flask bằng cách nhập lệnh sau

$ gcloud --version
0

Flask khởi động máy chủ phát triển và thiết bị đầu cuối của bạn sẽ hiển thị đầu ra tương tự như văn bản hiển thị bên dưới

$ gcloud --version
1

Đầu ra này cho bạn biết ba thông tin quan trọng

  1. $ source venv/bin/activate
    
    1. Đây là máy chủ phát triển của Flask, có nghĩa là bạn không muốn sử dụng nó để phục vụ mã của mình trong quá trình sản xuất. Thay vào đó, Google App Engine sẽ xử lý việc đó cho bạn

  2. $ source venv/bin/activate
    
    2. Đây là URL nơi bạn có thể tìm thấy ứng dụng của mình. Đó là URL cho máy chủ cục bộ của bạn, có nghĩa là ứng dụng đang chạy trên máy tính của chính bạn. Điều hướng đến URL đó trong trình duyệt của bạn để xem mã của bạn trực tiếp

  3. ______41_______3. Dòng tương tự cũng cho bạn biết rằng bạn có thể thoát khỏi máy chủ phát triển bằng cách nhấn Ctrl + C on your keyboard.

Làm theo hướng dẫn và mở tab trình duyệt tại

$ source venv/bin/activate
4. Bạn sẽ thấy một trang hiển thị văn bản mà hàm của bạn trả về.
runtime: python38
8

Ghi chú. URL

$ source venv/bin/activate
6 còn được gọi là localhost, có nghĩa là nó trỏ đến máy tính của chính bạn. Số
$ source venv/bin/activate
7 theo sau dấu hai chấm [
$ source venv/bin/activate
8] được gọi là số cổng. Cổng có thể được coi là một kênh cụ thể, tương tự như phát một kênh truyền hình hoặc đài phát thanh

Bạn đã xác định các giá trị này trong

$ source venv/bin/activate
9 trong tệp
Flask==2.1.2
3 của mình. Chạy ứng dụng trên cổng
$ source venv/bin/activate
7 có nghĩa là bạn có thể điều chỉnh số cổng này và nhận thông tin liên lạc từ máy chủ phát triển. Cổng
$ source venv/bin/activate
7 thường được sử dụng để thử nghiệm cục bộ, nhưng bạn cũng có thể sử dụng một số khác

Bạn có thể sử dụng máy chủ phát triển của Flask để kiểm tra mọi thay đổi mà bạn thực hiện đối với mã của ứng dụng Python của mình. Máy chủ lắng nghe những thay đổi bạn thực hiện trong mã và sẽ tự động tải lại để hiển thị chúng. Nếu ứng dụng của bạn không hiển thị như bạn mong đợi trên máy chủ phát triển, thì ứng dụng đó cũng sẽ không hoạt động trong sản xuất. Vì vậy, hãy chắc chắn rằng nó trông ổn trước khi bạn triển khai nó

Ngoài ra, hãy nhớ rằng ngay cả khi nó hoạt động tốt tại địa phương, nó có thể không hoạt động hoàn toàn giống như vậy sau khi được triển khai. Điều này là do có các yếu tố khác liên quan khi bạn triển khai mã của mình cho Google App Engine. Tuy nhiên, đối với một ứng dụng cơ bản chẳng hạn như ứng dụng bạn đang xây dựng trong hướng dẫn này, bạn có thể tin tưởng rằng nó sẽ hoạt động trong môi trường sản xuất nếu nó hoạt động tốt tại địa phương

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

Thay đổi giá trị trả về của

runtime: python38
4 và xác nhận rằng bạn có thể thấy thay đổi được phản ánh trong trình duyệt của mình. Chơi xung quanh với nó. Điều gì xảy ra khi bạn thay đổi giá trị trả về của
runtime: python38
4 thành mã HTML, chẳng hạn như
$ python3 -m pip install -r requirements.txt
5, thay vì sử dụng chuỗi văn bản thuần túy?

Sau khi đã kiểm tra thiết lập của bạn và chức năng của mã trên máy chủ phát triển cục bộ của bạn, bạn đã sẵn sàng triển khai mã đó cho Google App Engine

Loại bỏ các quảng cáo

Triển khai ứng dụng web Python của bạn

Cuối cùng cũng đến lúc đưa ứng dụng của bạn lên mạng. Nhưng trước tiên, mã của bạn cần có một nơi để tồn tại trên các máy chủ của Google và bạn cần đảm bảo rằng mã đó đến đó một cách an toàn. Trong phần hướng dẫn này, bạn sẽ hoàn thành các thiết lập triển khai cần thiết cả trên đám mây và cục bộ

Thiết lập trên Google App Engine

Đọc qua quy trình thiết lập bên dưới từng bước. Bạn có thể so sánh những gì bạn thấy trong trình duyệt của mình với ảnh chụp màn hình. Tên dự án được sử dụng trong các ảnh chụp màn hình ví dụ là

Flask==2.1.2
2

Bắt đầu bằng cách đăng nhập vào Google Cloud Platform. Điều hướng đến chế độ xem trang tổng quan, nơi bạn sẽ thấy một thanh công cụ ở đầu cửa sổ. Chọn nút mũi tên hướng xuống phía bên trái của thanh công cụ. Điều này sẽ bật lên một phương thức chứa danh sách các dự án Google của bạn

Phương thức hiển thị danh sách các dự án của bạn. Danh sách có thể trống nếu bạn chưa tạo bất kỳ dự án nào. Ở trên cùng bên phải của phương thức đó, hãy tìm nút DỰ ÁN MỚI và nhấp vào nút đó

Nhấp vào DỰ ÁN MỚI sẽ chuyển hướng bạn đến một trang mới nơi bạn có thể quyết định tên cho dự án của mình. Tên này sẽ xuất hiện trong URL của ứng dụng của bạn, trông giống như tên

$ python3 -m pip install -r requirements.txt
7. Sử dụng
Flask==2.1.2
2 làm tên cho dự án này để phù hợp với hướng dẫn

Bạn có thể thấy ID dự án của mình bên dưới trường nhập Tên dự án. ID dự án bao gồm tên bạn đã nhập và một số mà Google App Engine thêm vào. Trong trường hợp của hướng dẫn này, bạn có thể thấy ID dự án là

$ python3 -m pip install -r requirements.txt
9. Sao chép ID dự án cá nhân của bạn vì sau này bạn sẽ cần nó để triển khai

Ghi chú. Vì ID dự án cần phải là duy nhất, số của bạn sẽ khác với số được hiển thị trong hướng dẫn này

Bây giờ, bạn có thể nhấp vào TẠO và đợi dự án được thiết lập ở phía Google App Engine. Khi đã xong, một thông báo sẽ bật lên cho bạn biết rằng một dự án mới đã được tạo. Nó cũng cung cấp cho bạn tùy chọn để chọn nó. Hãy tiếp tục và làm điều đó bằng cách nhấp vào CHỌN DỰ ÁN

Nhấp vào CHỌN DỰ ÁN sẽ chuyển hướng bạn đến trang chính của dự án Google Cloud Platform mới của bạn. Nó trông như thế này

Từ đây, bạn muốn chuyển sang trang tổng quan của Google App Engine. Bạn có thể làm điều đó bằng cách nhấp vào menu hamburger ở trên cùng bên trái, cuộn xuống để chọn Máy ứng dụng trong danh sách đầu tiên, sau đó chọn Trang tổng quan ở đầu danh sách bật lên tiếp theo

Điều này cuối cùng sẽ chuyển hướng bạn đến giao diện bảng điều khiển Google App Engine của dự án mới của bạn. Vì dự án trống cho đến nay, trang sẽ trông giống như thế này

Khi bạn nhìn thấy trang này có nghĩa là bạn đã hoàn thành việc thiết lập một dự án mới trên Google App Engine. Bây giờ, bạn đã sẵn sàng quay lại thiết bị đầu cuối trên máy tính của mình và hoàn thành các bước cục bộ cần thiết để triển khai ứng dụng của bạn cho dự án này

Loại bỏ các quảng cáo

Thiết lập cục bộ để triển khai

Sau khi cài đặt thành công Google Cloud SDK, bạn có quyền truy cập vào giao diện dòng lệnh

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
9. Chương trình này đi kèm với các hướng dẫn hữu ích giúp bạn triển khai ứng dụng web của mình. Bắt đầu bằng cách nhập lệnh được gợi ý cho bạn khi bạn tạo một dự án mới trên trang web Google App Engine

Như bạn có thể thấy ở góc dưới cùng bên phải của trang, Google App Engine đề xuất một lệnh đầu cuối để triển khai mã của bạn cho dự án này. Mở thiết bị đầu cuối của bạn, điều hướng đến thư mục dự án của bạn, sau đó chạy lệnh được đề xuất

$ gcloud --version
2

Khi bạn thực hiện lệnh này mà không có bất kỳ thiết lập nào trước đó, chương trình sẽ phản hồi bằng một thông báo lỗi

$ gcloud --version
3

Bạn nhận được thông báo lỗi này vì bạn không thể triển khai bất kỳ mã nào vào tài khoản Google App Engine của mình trừ khi bạn chứng minh với Google rằng bạn là chủ sở hữu của tài khoản đó. Bạn sẽ cần xác thực bằng tài khoản Google App Engine từ máy tính cục bộ của mình

Ứng dụng dòng lệnh

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
9 đã cung cấp cho bạn lệnh mà bạn cần chạy. Nhập nó vào thiết bị đầu cuối của bạn

$ gcloud --version
4

Thao tác này sẽ bắt đầu quá trình xác thực bằng cách tạo URL xác thực và mở nó trong trình duyệt của bạn. Hoàn tất quy trình bằng cách chọn tài khoản Google của bạn trong cửa sổ trình duyệt và cấp cho Google Cloud SDK các đặc quyền cần thiết. Sau khi thực hiện việc này, bạn có thể quay lại thiết bị đầu cuối của mình, nơi bạn sẽ thấy một số thông tin về quy trình xác thực

$ gcloud --version
5

Nếu bạn thấy thông báo này, thì xác thực đã thành công. Bạn cũng có thể thấy rằng chương trình dòng lệnh lại cung cấp cho bạn thông tin hữu ích về bước tiếp theo của bạn

Nó cho bạn biết rằng hiện tại không có bộ dự án nào và bạn có thể đặt một bộ bằng cách chạy

if __name__ == "__main__":
    app.run[host="127.0.0.1", port=8080, debug=True]
2. Bây giờ bạn sẽ cần ID dự án mà bạn đã lưu ý trước đó

Ghi chú. Bạn luôn có thể lấy ID dự án của mình bằng cách truy cập trang web Google App Engine và nhấp vào mũi tên hướng xuống để hiển thị phương thức hiển thị tất cả các dự án Google của bạn. ID dự án được liệt kê ở bên phải tên dự án của bạn và thường bao gồm tên dự án và một số có sáu chữ số

Đảm bảo thay thế

$ python3 -m pip install -r requirements.txt
9 bằng ID dự án của riêng bạn khi chạy lệnh được đề xuất

$ gcloud --version
6

Thiết bị đầu cuối của bạn sẽ in ra một thông báo phản hồi ngắn rằng thuộc tính dự án đã được cập nhật. Sau khi xác thực thành công và đặt dự án mặc định thành ID dự án của bạn, bạn đã hoàn thành các bước thiết lập cần thiết

Chạy quy trình triển khai

Bây giờ bạn đã sẵn sàng thử lệnh triển khai ban đầu lần thứ hai

$ gcloud --version
2

Ứng dụng

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
9 tìm nạp thông tin đăng nhập xác thực của bạn cũng như thông tin ID dự án từ cấu hình mặc định mà bạn vừa thiết lập và cho phép bạn tiếp tục. Tiếp theo, bạn cần chọn một khu vực nơi ứng dụng của bạn sẽ được lưu trữ

$ gcloud --version
8

Nhập một trong các số được liệt kê ở bên trái và nhấn Enter .

Note. Không quan trọng bạn chọn khu vực nào cho ứng dụng này. Tuy nhiên, nếu bạn đang xây dựng một ứng dụng lớn có lưu lượng truy cập đáng kể, thì bạn sẽ muốn triển khai ứng dụng đó tới một máy chủ gần với hầu hết người dùng của bạn.

Sau khi bạn nhập một số, CLI sẽ tiếp tục quá trình thiết lập. Trước khi triển khai mã của bạn cho Google App Engine, mã sẽ hiển thị cho bạn tổng quan về việc triển khai sẽ như thế nào và yêu cầu bạn xác nhận lần cuối

$ gcloud --version
9

Sau khi bạn xác nhận thiết lập bằng cách nhập Y , quá trình triển khai của bạn cuối cùng sẽ bắt đầu. Thiết bị đầu cuối của bạn sẽ hiển thị cho bạn thêm một số thông tin và hình ảnh động tải nhỏ trong khi Google App Engine thiết lập dự án của bạn trên các máy chủ của nó.

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
0

Vì đây là lần triển khai đầu tiên ứng dụng web của bạn nên có thể mất vài phút để hoàn tất. Sau khi triển khai xong, bạn sẽ thấy một kết quả hữu ích khác trong bảng điều khiển. Nó sẽ trông giống như bên dưới

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
1

Giờ đây, bạn có thể điều hướng đến URL được đề cập trong trình duyệt của mình hoặc nhập lệnh được đề xuất

if __name__ == "__main__":
    app.run[host="127.0.0.1", port=8080, debug=True]
5 để truy cập ứng dụng web trực tiếp của bạn. Bạn sẽ thấy cùng một phản hồi văn bản ngắn mà bạn đã thấy trước đó khi chạy ứng dụng trên máy chủ cục bộ của mình.
runtime: python38
8

Lưu ý rằng trang web này có một URL mà bạn có thể chia sẻ với những người khác và họ sẽ có thể truy cập nó. Bây giờ bạn đã có một ứng dụng web Python trực tiếp

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

Thay đổi lại giá trị trả về của

runtime: python38
4 và triển khai ứng dụng của bạn lần thứ hai bằng cách sử dụng lệnh
if __name__ == "__main__":
    app.run[host="127.0.0.1", port=8080, debug=True]
8. Xác nhận rằng bạn có thể thấy thay đổi được phản ánh trên trang web trực tiếp trong trình duyệt của mình

Với điều này, bạn đã hoàn thành các bước cần thiết để đưa mã Python cục bộ của mình lên web. Tuy nhiên, chức năng duy nhất mà bạn đặt trực tuyến cho đến nay là in ra một chuỗi văn bản

Thời gian để đẩy nó lên. Theo quy trình tương tự, bạn sẽ mang đến nhiều chức năng thú vị hơn trực tuyến trong phần tiếp theo. Bạn sẽ cấu trúc lại mã của tập lệnh chuyển đổi nhiệt độ cục bộ thành ứng dụng web Flask

Loại bỏ các quảng cáo

Chuyển đổi tập lệnh thành ứng dụng web

Vì hướng dẫn này nói về việc tạo và triển khai các ứng dụng web Python từ mã bạn đã có, mã Python cho tập lệnh chuyển đổi nhiệt độ được cung cấp cho bạn tại đây

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
2

Đây là một tập lệnh ngắn cho phép người dùng chuyển đổi nhiệt độ độ C sang nhiệt độ độ F tương đương

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

Lưu mã dưới dạng tập lệnh Python và chạy thử. Đảm bảo rằng nó hoạt động như mong đợi và bạn hiểu những gì nó làm. Vui lòng cải thiện mã

Với tập lệnh hoạt động này trong tay, bây giờ bạn sẽ cần thay đổi mã để tích hợp nó vào ứng dụng Flask của mình. Có hai điểm chính cần xem xét để làm điều đó

  • Chấp hành. Làm cách nào để ứng dụng web biết khi nào nên chạy mã?
  • đầu vào của người dùng. Ứng dụng web sẽ thu thập thông tin đầu vào của người dùng như thế nào?

Bạn đã học cách yêu cầu Flask thực thi một đoạn mã cụ thể bằng cách thêm mã vào một chức năng mà bạn chỉ định tuyến đường cho nó. Bắt đầu bằng cách giải quyết nhiệm vụ này trước

Thêm mã dưới dạng chức năng

Flask tách các tác vụ khác nhau thành các chức năng khác nhau, mỗi chức năng được chỉ định một lộ trình thông qua trình trang trí

runtime: python38
1. Khi người dùng truy cập tuyến đường đã chỉ định qua URL của nó, mã bên trong chức năng tương ứng sẽ được thực thi

Bắt đầu bằng cách thêm

$ gcloud --version
00 vào tệp
Flask==2.1.2
3 của bạn và bọc nó bằng trình trang trí
runtime: python38
1

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
3

Cho đến giờ, bạn mới chỉ sao chép mã của tập lệnh Python vào một hàm trong ứng dụng Flask của mình và thêm trình trang trí

runtime: python38
1

Tuy nhiên, đã xảy ra sự cố với thiết lập này. Điều gì xảy ra khi bạn chạy mã trong máy chủ phát triển của mình?

Hiện tại, cả hai chức năng của bạn đều được kích hoạt bởi cùng một lộ trình [

runtime: python38
3]. Khi người dùng truy cập tuyến đường đó, Flask sẽ chọn chức năng đầu tiên khớp với nó và thực thi mã đó. Trong trường hợp của bạn, điều này có nghĩa là
$ gcloud --version
00 không bao giờ được thực thi vì
runtime: python38
4 khớp với cùng một tuyến đường và được gọi trước

Chức năng thứ hai của bạn sẽ cần có tuyến đường riêng để có thể truy cập được. Ngoài ra, bạn vẫn cần cho phép người dùng cung cấp thông tin đầu vào cho chức năng của mình

Truyền giá trị cho mã của bạn

Bạn có thể giải quyết cả hai nhiệm vụ này bằng cách yêu cầu Flask xử lý bất kỳ phần còn lại nào của URL sau URL cơ sở dưới dạng giá trị và chuyển nó cho hàm của bạn. Điều này chỉ yêu cầu một thay đổi nhỏ đối với tham số của trình trang trí

runtime: python38
1 trước
$ gcloud --version
00

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
4

Cú pháp dấu ngoặc nhọn [

$ gcloud --version
09] yêu cầu Flask ghi lại bất kỳ văn bản nào sau URL cơ sở [
runtime: python38
3] và chuyển nó tới hàm mà trình trang trí kết thúc dưới dạng biến
$ gcloud --version
11. Lưu ý rằng
$ gcloud --version
00 yêu cầu đầu vào là ____6_______11

Ghi chú. Đảm bảo rằng thành phần đường dẫn URL bạn đang chụp có cùng tên với tham số bạn đang chuyển đến hàm của mình. Nếu không, Flask sẽ bị nhầm lẫn và sẽ cho bạn biết về điều đó bằng cách hiển thị cho bạn một thông báo lỗi

Quay trở lại trình duyệt web của bạn và thử chức năng mới bằng máy chủ phát triển của Flask. Giờ đây, bạn có thể truy cập cả hai chức năng của mình thông qua ứng dụng web bằng cách sử dụng các điểm cuối URL khác nhau

  • Mục lục [
    $ gcloud --version
    
    14]. Nếu bạn truy cập URL cơ sở, thì bạn sẽ thấy thông báo khuyến khích ngắn từ trước đó
  • độ C [____6_______15]. Nếu bạn thêm một số sau dấu gạch chéo lên, thì bạn sẽ thấy nhiệt độ đã chuyển đổi xuất hiện trong trình duyệt của mình

Chơi xung quanh nó thêm một chút và thử nhập các đầu vào khác nhau. Ngay cả việc xử lý lỗi từ tập lệnh của bạn vẫn hoạt động và hiển thị thông báo khi người dùng nhập đầu vào không phải là số. Ứng dụng web của bạn xử lý chức năng tương tự như tập lệnh Python của bạn đã thực hiện cục bộ, chỉ bây giờ bạn mới có thể triển khai nó lên Internet

Loại bỏ các quảng cáo

Tái cấu trúc mã của bạn

Flask là một khung web hoàn thiện cho phép bạn giao nhiều nhiệm vụ cho các thành viên bên trong của nó. Ví dụ: bạn có thể để Flask xử lý việc kiểm tra kiểu đầu vào cho hàm của bạn và trả về thông báo lỗi nếu nó không phù hợp. Tất cả điều này có thể được thực hiện với một cú pháp ngắn gọn bên trong tham số tới

runtime: python38
1. Thêm phần sau vào trình chụp đường dẫn của bạn

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
5

Thêm

$ gcloud --version
17 trước tên biến để Flask kiểm tra xem đầu vào mà nó nhận được từ URL có thể được chuyển đổi thành số nguyên hay không. If it can, then the content is passed on to
$ gcloud --version
00. Nếu không thể, Flask sẽ hiển thị trang lỗi
$ gcloud --version
19

Ghi chú. Lỗi

$ gcloud --version
19 có nghĩa là Flask đã cố khớp thành phần đường dẫn mà nó đã lấy ra từ URL với bất kỳ chức năng nào mà nó biết về

Tuy nhiên, các mẫu duy nhất mà nó hiện biết là đường dẫn cơ sở trống [

$ gcloud --version
14] và đường dẫn cơ sở theo sau là một số, chẳng hạn như
$ gcloud --version
15. Vì một văn bản như
$ gcloud --version
23 không khớp với bất kỳ mẫu nào trong số này, nó cho bạn biết rằng không tìm thấy URL được yêu cầu trên máy chủ

Sau khi áp dụng kiểm tra loại của Flask, giờ đây bạn có thể xóa khối

$ gcloud --version
24 …
$ gcloud --version
25 trong
$ gcloud --version
00 một cách an toàn. Chỉ các số nguyên mới được Flask chuyển vào hàm

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
6

Với điều này, bạn đã hoàn thành việc chuyển đổi tập lệnh chuyển đổi nhiệt độ của mình thành một ứng dụng web. Xác nhận rằng mọi thứ hoạt động cục bộ như dự kiến, sau đó triển khai lại ứng dụng của bạn lên Google App Engine

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

Tái cấu trúc

runtime: python38
4. Nó sẽ trả về văn bản giải thích cách sử dụng ứng dụng web chuyển đổi nhiệt độ. Hãy nhớ rằng bạn có thể sử dụng các thẻ HTML trong chuỗi trả về. HTML sẽ hiển thị chính xác trên trang đích của bạn

Sau khi triển khai thành công ứng dụng web chuyển đổi nhiệt độ của bạn lên Internet, bây giờ bạn có một liên kết mà bạn có thể chia sẻ với những người khác và cho phép họ chuyển đổi nhiệt độ độ C sang nhiệt độ độ F

Tuy nhiên, giao diện trông vẫn khá cơ bản và ứng dụng web hoạt động giống API hơn là ứng dụng web giao diện người dùng. Nhiều người dùng có thể không biết cách tương tác với ứng dụng web Python của bạn ở trạng thái hiện tại. Điều này cho bạn thấy những hạn chế của việc sử dụng Python thuần túy để phát triển web

Nếu bạn muốn tạo các giao diện trực quan hơn, thì bạn sẽ cần bắt đầu sử dụng ít nhất một chút HTML

Trong phần tiếp theo, bạn sẽ tiếp tục lặp lại mã của mình và sử dụng HTML để tạo hộp nhập liệu cho phép người dùng nhập số trực tiếp trên trang thay vì thông qua URL

Cải thiện giao diện người dùng của ứng dụng web của bạn

Trong phần này, bạn sẽ tìm hiểu cách thêm phần tử đầu vào HTML

$ gcloud --version
28 vào ứng dụng web của mình để cho phép người dùng tương tác với nó theo cách đơn giản mà họ đã quen với các ứng dụng trực tuyến khác

Để cải thiện giao diện người dùng và trải nghiệm người dùng cho ứng dụng web của bạn, bạn sẽ cần làm việc với các ngôn ngữ khác ngoài Python, cụ thể là các ngôn ngữ giao diện người dùng như HTML, CSS và JavaScript. Hướng dẫn này tránh đi sâu vào những điều này càng nhiều càng tốt, để tập trung vào việc sử dụng Python

Tuy nhiên, nếu bạn muốn thêm hộp nhập liệu vào ứng dụng web của mình thì bạn sẽ cần sử dụng một số HTML. Bạn sẽ chỉ triển khai ở mức tối thiểu tuyệt đối để ứng dụng web của bạn trông giống một trang web mà người dùng sẽ quen thuộc hơn. Bạn sẽ sử dụng phần tử HTML

$ gcloud --version
28 để thu thập thông tin đầu vào của họ

Ghi chú. Nếu bạn muốn tìm hiểu thêm về HTML, hãy xem Real Python's HTML and CSS for Python Developers hoặc MDN's Introduction to HTML

Sau khi cập nhật ứng dụng web của bạn, bạn sẽ có một trường văn bản nơi người dùng có thể nhập nhiệt độ theo độ C. Sẽ có một nút Chuyển đổi để chuyển đổi nhiệt độ C do người dùng cung cấp thành độ F

Kết quả chuyển đổi sẽ được hiển thị trên dòng tiếp theo và sẽ được cập nhật bất cứ khi nào người dùng nhấp vào Chuyển đổi

Bạn cũng sẽ thay đổi chức năng của ứng dụng để cả biểu mẫu và kết quả chuyển đổi đều được hiển thị trên cùng một trang. Bạn sẽ cấu trúc lại mã để bạn chỉ cần một điểm cuối URL duy nhất

Loại bỏ các quảng cáo

Thu thập đầu vào của người dùng

Bắt đầu bằng cách tạo phần tử

$ gcloud --version
28 trên trang đích của bạn. Sao chép vài dòng HTML sau vào câu lệnh trả về của
runtime: python38
4, thay thế tin nhắn văn bản trước đó

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
7

Khi bạn tải lại trang của mình tại URL cơ sở, bạn sẽ thấy một hộp nhập liệu và một nút. HTML hiển thị chính xác. Xin chúc mừng, bạn vừa tạo một biểu mẫu nhập liệu

Ghi chú. Hãy nhớ rằng bản thân một số dòng HTML này không tạo thành một trang HTML hợp lệ. Tuy nhiên, các trình duyệt hiện đại được thiết kế theo cách mà chúng có thể điền vào chỗ trống và tạo cấu trúc còn thiếu cho bạn

Điều gì xảy ra khi bạn nhập một giá trị rồi nhấp vào Chuyển đổi? . Nó hiện hiển thị một tham số truy vấn có giá trị sau URL cơ sở

Ví dụ: nếu bạn đã nhập

$ gcloud --version
32 vào hộp văn bản và nhấp vào nút, thì URL của bạn sẽ trông như thế này.
$ gcloud --version
33. Đây là tin tốt. Giá trị đã được ghi lại thành công và được thêm dưới dạng tham số truy vấn vào yêu cầu HTTP GET. Thấy URL này có nghĩa là bạn đang yêu cầu lại URL cơ sở, nhưng lần này với một số giá trị bổ sung mà bạn đang gửi cùng

Tuy nhiên, hiện tại không có gì xảy ra với giá trị bổ sung đó. Mặc dù biểu mẫu được thiết lập như bình thường, nhưng nó vẫn chưa được kết nối chính xác với chức năng mã của ứng dụng web Python của bạn

Để hiểu cách tạo kết nối đó, bạn sẽ đọc về từng phần của phần tử

$ gcloud --version
28 để xem các phần khác nhau nói về điều gì. Bạn sẽ xem xét ba yếu tố sau đây và các thuộc tính của chúng một cách riêng biệt

  1. $ gcloud --version
    
    28 phần tử
  2. ô nhập liệu
  3. gửi nút

Mỗi trong số này là các phần tử HTML riêng biệt. Mặc dù hướng dẫn này nhằm mục đích tập trung vào Python hơn là HTML, nhưng sẽ vẫn hữu ích nếu bạn có hiểu biết cơ bản về những gì diễn ra trong khối mã HTML này. Bắt đầu bằng cách nhìn vào phần tử HTML ngoài cùng

$ gcloud --version
28 Phần tử

Phần tử

$ gcloud --version
28 tạo biểu mẫu HTML. Hai phần tử
$ gcloud --version
38 khác được bọc bên trong nó

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
8

Phần tử

$ gcloud --version
28 cũng chứa hai thuộc tính HTML có tên là
$ gcloud --version
40 và
$ gcloud --version
41

  • $ gcloud --version
    
    40 xác định nơi dữ liệu mà người dùng gửi sẽ được gửi. Bạn đang để giá trị dưới dạng một chuỗi trống ở đây, điều này làm cho trình duyệt của bạn hướng yêu cầu đến cùng một URL mà nó được gọi từ đó. Trong trường hợp của bạn, đó là URL cơ sở trống

  • $ gcloud --version
    
    41 xác định loại yêu cầu HTTP mà biểu mẫu tạo ra. Sử dụng giá trị mặc định của
    $ gcloud --version
    
    44 sẽ tạo một yêu cầu HTTP GET. Điều này có nghĩa là dữ liệu do người dùng gửi sẽ hiển thị trong các tham số truy vấn URL. Nếu bạn đang gửi dữ liệu nhạy cảm hoặc giao tiếp với cơ sở dữ liệu thì bạn sẽ cần sử dụng yêu cầu HTTP POST để thay thế

Sau khi kiểm tra phần tử

$ gcloud --version
28 và các thuộc tính của nó, bước tiếp theo của bạn là xem xét kỹ hơn phần tử đầu tiên trong hai phần tử
$ gcloud --version
38

Hộp nhập liệu

Phần tử HTML thứ hai là phần tử

$ gcloud --version
38 được lồng bên trong phần tử
$ gcloud --version
28

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
9

Phần tử

$ gcloud --version
38 đầu tiên có hai thuộc tính HTML

  1. $ gcloud --version
    
    50 xác định loại phần tử
    $ gcloud --version
    
    38 sẽ được tạo. Có nhiều thứ để lựa chọn, chẳng hạn như hộp kiểm và phần tử thả xuống. In this case, you want the user to enter a number as text, so you’re setting the type to
    $ gcloud --version
    
    52

  2. $ gcloud --version
    
    53 xác định giá trị mà người dùng nhập vào sẽ được gọi là. Bạn có thể coi nó như chìa khóa của từ điển, trong đó giá trị là bất cứ thứ gì người dùng nhập vào hộp văn bản. Bạn đã thấy tên này hiển thị trong URL dưới dạng khóa của tham số truy vấn. Bạn sẽ cần khóa này sau để truy xuất giá trị do người dùng gửi

Các phần tử

$ gcloud --version
38 HTML có thể có các hình dạng khác nhau và một số trong số chúng yêu cầu các thuộc tính khác nhau. Bạn sẽ thấy một ví dụ về điều này khi xem phần tử
$ gcloud --version
38 thứ hai, phần tử này tạo nút Gửi và là phần tử HTML cuối cùng tạo nên đoạn mã của bạn

nút gửi

Phần tử

$ gcloud --version
38 thứ hai tạo nút cho phép người dùng của bạn gửi thông tin đầu vào của họ

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
0

Phần tử này cũng có hai thuộc tính HTML, được đặt tên là

$ gcloud --version
50 và
$ gcloud --version
58

  • $ gcloud --version
    
    50 xác định loại phần tử đầu vào nào sẽ được tạo. Sử dụng giá trị
    $ gcloud --version
    
    60 sẽ tạo một nút cho phép bạn gửi dữ liệu biểu mẫu được đóng gói trở đi

  • $ gcloud --version
    
    58 xác định văn bản mà nút sẽ hiển thị. Vui lòng thay đổi nó để xem nút hiển thị văn bản đã thay đổi của bạn như thế nào

Với tổng quan ngắn gọn này về các phần tử HTML khác nhau và các thuộc tính của chúng, giờ đây bạn đã hiểu rõ hơn về những gì bạn đang thêm vào mã Python của mình và những phần tử này được sử dụng để làm gì

Thông tin mà bạn sẽ cần để kết nối việc gửi biểu mẫu với mã Flask của bạn là giá trị

$ gcloud --version
53 của phần tử đầu tiên của
$ gcloud --version
38,
$ gcloud --version
11, mà bạn sẽ sử dụng để truy cập giá trị đã gửi trong hàm của mình

Tiếp theo, bạn sẽ tìm hiểu cách thay đổi mã Python của mình để xử lý chính xác thông tin đầu vào của biểu mẫu đã gửi

Loại bỏ các quảng cáo

Nhận đầu vào của người dùng

Trong thuộc tính

$ gcloud --version
40 của phần tử
$ gcloud --version
28, bạn đã chỉ định rằng dữ liệu của biểu mẫu HTML của bạn sẽ được gửi trở lại cùng một URL mà nó đến từ đó. Bây giờ bạn cần bao gồm chức năng lấy giá trị trong
runtime: python38
4. Đối với điều này, bạn cần thực hiện hai bước

  1. Nhập đối tượng

    $ gcloud --version
    
    68 của Flask. Giống như nhiều khung web, Flask chuyển các yêu cầu HTTP dưới dạng các đối tượng toàn cầu. Để có thể sử dụng đối tượng toàn cầu
    $ gcloud --version
    
    68 này, trước tiên bạn cần nhập nó

  2. Lấy giá trị. Đối tượng

    $ gcloud --version
    
    68 chứa giá trị đã gửi và cung cấp cho bạn quyền truy cập vào giá trị đó thông qua cú pháp từ điển Python. Bạn cần tìm nạp nó từ đối tượng toàn cầu để có thể sử dụng nó trong chức năng của mình

Viết lại mã của bạn và thêm hai thay đổi này ngay bây giờ. Bạn cũng sẽ muốn thêm giá trị đã nắm bắt vào cuối chuỗi biểu mẫu để hiển thị giá trị đó sau biểu mẫu

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
1

Từ điển

$ gcloud --version
71 chứa bất kỳ dữ liệu nào được gửi với yêu cầu HTTP GET. Nếu URL cơ sở của bạn được gọi ban đầu mà không gửi biểu mẫu, thì từ điển sẽ trống và thay vào đó, bạn sẽ trả về một chuỗi trống làm giá trị mặc định. Nếu trang được gọi thông qua việc gửi biểu mẫu, thì từ điển sẽ chứa một giá trị bên dưới khóa
$ gcloud --version
11 và bạn có thể tìm nạp thành công và thêm nó vào chuỗi được trả về

Cung cấp cho nó một spin. Bây giờ bạn có thể nhập một số và thấy nó hiển thị ngay bên dưới nút của biểu mẫu. Nếu bạn nhập một số mới, thì số cũ sẽ được thay thế. Bạn đang gửi và nhận chính xác dữ liệu mà người dùng của bạn đang gửi

Trước khi bạn tiếp tục tích hợp giá trị đã gửi với mã chuyển đổi nhiệt độ của mình, bạn có thể nghĩ đến bất kỳ vấn đề tiềm ẩn nào khi triển khai này không?

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

Điều gì xảy ra khi bạn nhập một chuỗi thay vì một số?

Bây giờ hãy nhập mã HTML ngắn

$ gcloud --version
73 và nhấn Chuyển đổi

Hiện tại, ứng dụng web của bạn chấp nhận bất kỳ loại đầu vào nào, có thể là số, chuỗi hoặc thậm chí là mã HTML hoặc JavaScript. Điều này cực kỳ nguy hiểm vì người dùng của bạn có thể vô tình hoặc cố ý phá vỡ ứng dụng web của bạn bằng cách nhập các loại nội dung cụ thể

Hầu hết thời gian, bạn nên cho phép Flask tự động xử lý các vấn đề bảo mật này bằng cách sử dụng một thiết lập dự án khác. Tuy nhiên, bây giờ bạn đang ở trong tình huống này, vì vậy, bạn nên tìm hiểu cách bạn có thể làm cho biểu mẫu mà bạn đã tạo đầu vào an toàn theo cách thủ công

Thoát đầu vào của người dùng

Lấy thông tin đầu vào từ người dùng và hiển thị lại thông tin đầu vào đó mà không điều tra trước những gì bạn sắp hiển thị là một lỗ hổng bảo mật lớn. Ngay cả khi không có mục đích xấu, người dùng của bạn có thể làm những việc không mong muốn khiến ứng dụng của bạn bị hỏng

Cố gắng hack biểu mẫu nhập liệu chưa thoát của bạn bằng cách thêm một số văn bản HTML vào đó. Thay vì nhập số, hãy sao chép dòng mã HTML sau, dán vào hộp nhập liệu của bạn và nhấp vào Chuyển đổi

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
2

Flask chèn văn bản trực tiếp vào mã HTML, điều này làm cho văn bản nhập này được hiểu là thẻ HTML. Do đó, trình duyệt của bạn hiển thị mã một cách nghiêm túc, giống như với bất kỳ mã HTML nào khác. Thay vì hiển thị lại đầu vào dưới dạng văn bản, bạn đột nhiên phải xử lý một liên kết spam giáo dục thời trang đã du hành thời gian đến đây ngay từ những năm 90

Mặc dù ví dụ này vô hại và biến mất khi bạn làm mới trang, nhưng bạn có thể tưởng tượng điều này có thể gây ra sự cố bảo mật như thế nào khi các loại nội dung khác được thêm vào theo cách này. Bạn không muốn mở ra khả năng người dùng của bạn chỉnh sửa các khía cạnh của ứng dụng web không được chỉnh sửa

Để tránh điều này, bạn có thể sử dụng Flask tích hợp sẵn để chuyển đổi các ký tự HTML đặc biệt

$ gcloud --version
75,
$ gcloud --version
76 và
$ gcloud --version
77 thành các biểu diễn tương đương có thể được hiển thị chính xác

Trước tiên, bạn cần nhập

$ gcloud --version
78 vào tập lệnh Python của mình để sử dụng chức năng này. Sau đó, khi bạn gửi biểu mẫu, bạn có thể chuyển đổi bất kỳ ký tự HTML đặc biệt nào và làm cho biểu mẫu của bạn trở thành bằng chứng của tin tặc thập niên 90

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
3

Làm mới máy chủ phát triển của bạn và thử gửi một số mã HTML. Bây giờ nó sẽ được hiển thị lại cho bạn dưới dạng chuỗi văn bản mà bạn đã nhập

Ghi chú. Cần phải chuyển đổi chuỗi đã thoát trở lại Python

$ gcloud --version
79. Nếu không, Flask cũng sẽ tham lam chuyển đổi phần tử
$ gcloud --version
28 mà hàm của bạn trả về thành các chuỗi thoát

Khi xây dựng các ứng dụng web lớn hơn, bạn không cần phải xử lý thoát đầu vào của mình vì tất cả HTML sẽ được xử lý bằng các mẫu. Nếu bạn muốn tìm hiểu thêm về điều đó, hãy xem Flask by Example

Sau khi tìm hiểu cách thu thập dữ liệu đầu vào của người dùng và cả cách thoát dữ liệu đó, cuối cùng bạn đã sẵn sàng triển khai chức năng chuyển đổi nhiệt độ và hiển thị cho người dùng giá trị độ F tương đương với nhiệt độ độ C mà họ đã nhập

Xử lý đầu vào của người dùng

Vì cách tiếp cận này chỉ sử dụng một điểm cuối URL nên bạn không thể dựa vào Flask để nhập kiểm tra đầu vào của người dùng thông qua chụp thành phần đường dẫn URL như bạn đã làm trước đó trên. Điều này có nghĩa là bạn sẽ muốn giới thiệu lại khối

$ gcloud --version
24 …
$ gcloud --version
25 của mình từ khối
$ gcloud --version
00 ban đầu của

Ghi chú. Vì bạn đang xác thực loại đầu vào của người dùng trong

$ gcloud --version
00, nên bạn không cần triển khai
$ gcloud --version
85 và nó sẽ không phải là một phần trong mã cuối cùng của bạn. Bạn có thể xóa việc nhập
$ gcloud --version
78 một cách an toàn và loại bỏ cuộc gọi tới
$ gcloud --version
87 trở lại trạng thái ban đầu

Lần này,

$ gcloud --version
00 sẽ không được liên kết với một trang trí
runtime: python38
1. Hãy tiếp tục và xóa dòng mã đó. Bạn sẽ gọi
$ gcloud --version
00 một cách rõ ràng từ
runtime: python38
4 thay vì yêu cầu Flask thực thi nó khi một điểm cuối URL cụ thể được truy cập

Sau khi xóa bộ trang trí khỏi

$ gcloud --version
00 và giới thiệu lại khối
$ gcloud --version
24 …
$ gcloud --version
25, tiếp theo bạn sẽ thêm một câu lệnh có điều kiện vào
runtime: python38
4 để kiểm tra xem đối tượng toàn cục
$ gcloud --version
68 có chứa khóa
$ gcloud --version
11 hay không. Nếu đúng như vậy, thì bạn muốn gọi
$ gcloud --version
00 để tính độ Fahrenheit tương ứng. If it doesn’t, then you assign an empty string to the
$ gcloud --version
99 variable instead

Làm điều này cho phép bạn thêm giá trị của

$ gcloud --version
99 vào cuối chuỗi HTML của bạn. Chuỗi rỗng sẽ không hiển thị trên trang của bạn, nhưng nếu người dùng đã gửi một giá trị thì giá trị đó sẽ hiển thị bên dưới biểu mẫu

Sau khi áp dụng những thay đổi cuối cùng này, bạn hoàn thành mã cho ứng dụng Flask chuyển đổi nhiệt độ của mình

 1from flask import Flask
 2
 3app = Flask[__name__]
 4
 5@app.route["/"]
 6def index[]:
 7    return "Congratulations, it's a web app!"
4

Vì đã có khá nhiều thay đổi, đây là phần đánh giá từng bước về các dòng đã chỉnh sửa

  • Dòng 2. Bạn không sử dụng

    $ gcloud --version
    
    85 nữa, vì vậy bạn có thể xóa nó khỏi câu lệnh nhập

  • Dòng 8, 11 và 12. Như trước đây, bạn đang tìm nạp giá trị do người dùng gửi thông qua đối tượng toàn cầu

    $ gcloud --version
    
    68 của Flask. Bằng cách sử dụng phương thức từ điển
    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    03, bạn đảm bảo rằng một chuỗi rỗng sẽ được trả về nếu không tìm thấy khóa. Đó sẽ là trường hợp nếu trang được tải ban đầu và người dùng chưa gửi biểu mẫu. Điều này được thực hiện trong dòng 11 và 12

  • Dòng 19. Bằng cách trả lại biểu mẫu với chuỗi trống mặc định được dán vào cuối, bạn tránh hiển thị bất kỳ thứ gì trước khi biểu mẫu được gửi

  • Dòng 9 và 10. Sau khi người dùng của bạn nhập một giá trị và nhấp vào Chuyển đổi, cùng một trang sẽ được tải lại. Khoảng thời gian này,

    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    04 tìm khóa
    $ gcloud --version
    
    11 và trả về giá trị liên quan. Điều này làm cho câu lệnh có điều kiện được đánh giá thành
    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    06 và giá trị do người dùng cung cấp được chuyển thành
    $ gcloud --version
    
    00

  • Dòng 24 đến 29.

    $ gcloud --version
    
    00 kiểm tra xem người dùng có cung cấp thông tin đầu vào hợp lệ hay không. Nếu giá trị được cung cấp có thể được chuyển đổi thành
    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    09, thì hàm sẽ áp dụng mã chuyển đổi nhiệt độ và trả về nhiệt độ tính bằng độ F. Nếu nó không thể được chuyển đổi, thì a được nâng lên và thay vào đó, hàm trả về chuỗi
    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    11

  • Dòng 19. Lần này, khi bạn nối biến

    $ gcloud --version
    
    99 vào cuối chuỗi HTML, nó trỏ đến giá trị trả về là
    $ gcloud --version
    
    00. Điều này có nghĩa là nhiệt độ đã chuyển đổi hoặc chuỗi thông báo lỗi sẽ được thêm vào HTML của bạn

  • Dòng 15 và 18. Để làm cho trang dễ sử dụng hơn, bạn cũng thêm các nhãn mô tả

    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    14 và
    app-engine-python 1.9.91
    bq 2.0.62
    cloud-datastore-emulator 2.1.0
    core 2020.11.13
    gsutil 4.55
    
    15 vào cùng chuỗi HTML này

Trang của bạn sẽ hiển thị chính xác mặc dù cách bạn thêm các chuỗi này không thể hiện HTML hợp lệ. Điều này hoạt động nhờ vào sức mạnh của các trình duyệt hiện đại

Hãy nhớ rằng nếu bạn quan tâm đến việc tìm hiểu sâu hơn về phát triển web, thì bạn sẽ cần học HTML. Nhưng để triển khai tập lệnh Python của bạn trực tuyến, điều này sẽ hoạt động tốt

Giờ đây, bạn có thể sử dụng tập lệnh chuyển đổi nhiệt độ bên trong trình duyệt của mình. Bạn có thể cung cấp nhiệt độ độ C thông qua hộp nhập liệu, nhấp vào nút và xem kết quả độ F đã chuyển đổi xuất hiện trên cùng một trang web. Vì bạn đang sử dụng yêu cầu HTTP GET mặc định nên bạn cũng có thể thấy dữ liệu đã gửi xuất hiện trong URL

Ghi chú. Trên thực tế, bạn thậm chí có thể bỏ qua biểu mẫu và cung cấp giá trị của riêng mình cho

$ gcloud --version
11 bằng cách cung cấp một địa chỉ thích hợp, tương tự như cách bạn có thể sử dụng chuyển đổi khi tạo tập lệnh mà không có biểu mẫu HTML

Ví dụ: hãy thử nhập trực tiếp URL

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
17 vào trình duyệt của bạn và bạn sẽ thấy kết quả chuyển đổi nhiệt độ xuất hiện trên trang của mình

Triển khai lại ứng dụng đã hoàn thành của bạn lên Google App Engine bằng cách sử dụng lệnh

if __name__ == "__main__":
    app.run[host="127.0.0.1", port=8080, debug=True]
8. Sau khi triển khai xong, hãy truy cập URL được cung cấp hoặc chạy
if __name__ == "__main__":
    app.run[host="127.0.0.1", port=8080, debug=True]
5 để xem ứng dụng web Python của bạn trực tuyến trên Internet. Kiểm tra nó bằng cách thêm các loại đầu vào khác nhau. Khi bạn hài lòng, hãy chia sẻ liên kết của bạn với mọi người

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

URL của ứng dụng web bộ chuyển đổi nhiệt độ của bạn vẫn trông giống như

app-engine-python 1.9.91
bq 2.0.62
cloud-datastore-emulator 2.1.0
core 2020.11.13
gsutil 4.55
20. Điều này không phản ánh chức năng hiện tại của ứng dụng của bạn

Truy cập lại , tạo dự án mới trên Google App Engine với tên phù hợp hơn và triển khai ứng dụng của bạn ở đó. Điều này sẽ cung cấp cho bạn thực hành trong việc tạo dự án và triển khai các ứng dụng Flask của bạn cho Google App Engine

Tại thời điểm này, bạn đã chuyển đổi thành công tập lệnh Python của mình thành ứng dụng web Python và triển khai nó vào Google App Engine để lưu trữ trực tuyến. Bạn có thể sử dụng quy trình tương tự để chuyển đổi nhiều tập lệnh Python của mình thành ứng dụng web

Tập thể dục. Thực hành và khám pháHiển thị/Ẩn

Tạo trình tạo thơ của riêng bạn cho phép người dùng tạo các bài thơ ngắn bằng biểu mẫu web. Ứng dụng web của bạn nên sử dụng một trang với một biểu mẫu duy nhất chấp nhận các yêu cầu GET. Bạn có thể sử dụng mã ví dụ này để bắt đầu hoặc bạn có thể viết mã của riêng mình

Nếu muốn tìm hiểu thêm về những gì bạn có thể làm với Google App Engine, thì bạn có thể đọc về cách sử dụng tệp tĩnh và thêm tệp CSS vào ứng dụng web Python của mình để cải thiện giao diện tổng thể của ứng dụng

Lưu trữ mã của bạn trực tuyến có thể giúp nhiều người truy cập mã hơn qua Internet. Hãy tiếp tục và chuyển đổi các tập lệnh yêu thích của bạn thành các ứng dụng Flask và hiển thị chúng cho cả thế giới

Phần kết luận

Bạn đã bao phủ rất nhiều nền tảng trong hướng dẫn này. Bạn đã bắt đầu với một tập lệnh Python cục bộ và biến nó thành một ứng dụng Flask được triển khai đầy đủ, thân thiện với người dùng hiện được lưu trữ trên Google App Engine

Trong khi làm việc thông qua hướng dẫn này, bạn đã học được

  • Cách các ứng dụng web cung cấp dữ liệu qua Internet
  • Cách cấu trúc lại tập lệnh Python của bạn để bạn có thể lưu trữ tập lệnh trực tuyến
  • Cách tạo một ứng dụng Flask cơ bản
  • Cách thoát thủ công đầu vào của người dùng
  • Cách triển khai mã của bạn tới Google App Engine

Giờ đây, bạn có thể lấy các tập lệnh Python cục bộ của mình và cung cấp chúng trực tuyến cho toàn thế giới sử dụng. Nếu bạn muốn tải xuống mã hoàn chỉnh cho ứng dụng mà bạn đã tạo trong hướng dẫn này, thì bạn có thể nhấp vào liên kết bên dưới

Nhận mã mẫu. Nhấp vào đây để lấy mã mẫu mà bạn sẽ sử dụng để tìm hiểu về cách tạo ứng dụng web Python bằng Flask trong hướng dẫn này

Nếu bạn muốn tìm hiểu thêm về phát triển web với Python, thì giờ đây bạn đã được trang bị đầy đủ để thử nghiệm với các khung web Python như Flask và Django. Hãy tiếp tục phát huy

Đánh dấu là đã hoàn thành

Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Triển khai tập lệnh Python của bạn trên web bằng Flask

🐍 Thủ thuật Python 💌

Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python

Gửi cho tôi thủ thuật Python »

About Martin Breuss

Martin thích tự động hóa, trò đùa ngớ ngẩn và rắn, tất cả đều phù hợp với cộng đồng Python. Anh ấy thích học hỏi và khám phá và cũng sẵn sàng nói về nó. Anh ấy viết và ghi nội dung cho Real Python và CodingNomads

» Thông tin thêm về Martin

Mỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là

Aldren

Bartosz

Geir Arne

Joanna

Gia-cốp

Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Chuyên gia Kỹ năng Python trong thế giới thực
Với quyền truy cập không giới hạn vào Python thực

Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia

Nâng cao kỹ năng Python của bạn »

Bạn nghĩ sao?

Đánh giá bài viết này

Tweet Chia sẻ Chia sẻ Email

Bài học số 1 hoặc điều yêu thích mà bạn đã học được là gì?

Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi

Tôi có thể sử dụng Flask để xây dựng trang web không?

Bạn thực sự có thể xây dựng các ứng dụng web mạnh mẽ bằng Python . Và đó là rất nhiều niềm vui. Trong hướng dẫn này, bạn sẽ tìm hiểu khung web Flask và bạn sẽ xây dựng một trang web từ đầu. Flask là một khung Python tuyệt vời để xây dựng các ứng dụng web và nó rất dễ học.

Trang web nào sử dụng Python Flask?

Các trang web hàng đầu được xây dựng bằng Flask .
Pinterest. Pinterest is a social media site that uses image and link sharing through pinboards. .
zillow. Zillow là một thị trường bất động sản tổng hợp các danh sách khác nhau vào trang web của họ. .
Patreon. .
Rực rỡ. .
Samsung. .
Netflix. .
Uber. .
Zalando

Tôi có thể sử dụng Flask làm máy chủ Web không?

Mặc dù Flask có một máy chủ web tích hợp, nhưng như chúng ta đều biết, nó không phù hợp để sản xuất và cần được đặt sau một máy chủ web thực sự có thể giao tiếp với Flask thông qua . Một lựa chọn phổ biến cho điều đó là Gunicorn—một máy chủ Python WSGI HTTP. Phục vụ các tệp tĩnh và yêu cầu ủy quyền với Nginx. . A common choice for that is Gunicorn—a Python WSGI HTTP server. Serving static files and proxying request with Nginx.

Làm cách nào để tạo một trang web Flask bằng Python?

điều kiện tiên quyết
Bước 1 - Cài đặt Flask
Bước 2 - Tạo một ứng dụng cơ sở
Bước 3 — Sử dụng các mẫu HTML
Step 4 — Setting up the Database
Step 5 — Displaying All Posts
Bước 6 - Hiển thị một bài đăng
Bước 7 - Sửa đổi bài viết

Chủ Đề