Hướng dẫn how do i connect python to flask in html? - làm cách nào để kết nối python với flask trong html?
Tác giả đã chọn quỹ nguồn mở và miễn phí để nhận quyên góp như một phần của chương trình Write for quyên góp. Show
Giới thiệuFlask là một khung web Python nhỏ và nhẹ, cung cấp các công cụ và tính năng hữu ích giúp việc tạo các ứng dụng web trong Python dễ dàng hơn. Nó mang lại sự linh hoạt cho các nhà phát triển và là một khung dễ tiếp cận hơn cho các nhà phát triển mới vì bạn có thể xây dựng một ứng dụng web một cách nhanh chóng chỉ bằng một tệp Python duy nhất. Bình cũng có thể mở rộng và không buộc một cấu trúc thư mục cụ thể hoặc yêu cầu mã nồi hơi phức tạp trước khi bắt đầu. Là một phần của hướng dẫn này, bạn sẽ sử dụng bộ công cụ Bootstrap để tạo kiểu cho ứng dụng của bạn để nó hấp dẫn hơn. Bootstrap sẽ giúp bạn kết hợp các trang web đáp ứng trong ứng dụng web của bạn để nó cũng hoạt động tốt trên các trình duyệt di động mà không cần viết mã HTML, CSS và JavaScript của riêng bạn để đạt được các mục tiêu này. Bộ công cụ sẽ cho phép bạn tập trung vào việc học cách hoạt động của Flask. Flask sử dụng công cụ mẫu Jinja để xây dựng các trang HTML động bằng cách sử dụng các khái niệm Python quen thuộc như biến, vòng lặp, danh sách, v.v. Bạn sẽ sử dụng các mẫu này như một phần của dự án này. Trong hướng dẫn này, bạn sẽ xây dựng một blog web nhỏ bằng cách sử dụng Flask và Sqlite trong Python 3. Người dùng của ứng dụng có thể xem tất cả các bài đăng trong cơ sở dữ liệu của bạn và nhấp vào tiêu đề của một bài đăng để xem nội dung của nó với khả năng thêm Bài đăng mới cho cơ sở dữ liệu và chỉnh sửa hoặc xóa một bài đăng hiện có. Điều kiện tiên quyếtTrước khi bạn bắt đầu làm theo hướng dẫn này, bạn sẽ cần:
Bước 1 - Cài đặt bìnhTrong bước này, bạn sẽ kích hoạt môi trường Python của mình và cài đặt bình bằng trình cài đặt gói 3.Nếu bạn đã kích hoạt môi trường lập trình của mình, hãy đảm bảo rằng bạn có trong thư mục dự án của mình ( 2) và sử dụng lệnh sau để kích hoạt môi trường:
Khi môi trường lập trình của bạn được kích hoạt, lời nhắc của bạn sẽ có tiền tố 5 có thể trông như sau:
Tiền tố này là một dấu hiệu cho thấy môi trường 5 hiện đang hoạt động, có thể có một tên khác tùy thuộc vào cách bạn đặt tên cho nó trong quá trình tạo.Lưu ý: Bạn có thể sử dụng Git, một hệ thống kiểm soát phiên bản, để quản lý và theo dõi hiệu quả quá trình phát triển cho dự án của bạn. Để tìm hiểu cách sử dụng Git, bạn có thể muốn xem phần giới thiệu của chúng tôi về việc sử dụng cài đặt Git và bài viết chi nhánh. You can use Git, a version control system, to effectively manage and track the development process for your project. To learn how to use Git, you might want to check out our Introduction to Git Installation Usage and Branches article. Nếu bạn đang sử dụng Git, bạn nên bỏ qua thư mục 5 mới được tạo trong tệp 8 của bạn để tránh theo dõi các tệp không liên quan đến dự án.Bây giờ bạn sẽ cài đặt các gói Python và cách ly mã dự án của bạn khỏi cài đặt hệ thống Python chính. Bạn sẽ làm điều này bằng cách sử dụng 3 và 0.Để cài đặt bình, chạy lệnh sau:
Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để xác nhận cài đặt:
Bạn sử dụng giao diện dòng lệnh 0 với tùy chọn 2 để thực thi mã Python. Tiếp theo, bạn nhập gói 3 với 4 sau đó in phiên bản bình, được cung cấp thông qua biến 5.Đầu ra sẽ là một số phiên bản tương tự như sau:
Bạn đã tạo ra thư mục dự án, môi trường ảo và bình cài đặt. Bây giờ bạn đã sẵn sàng để chuyển sang thiết lập ứng dụng cơ sở của bạn. Bước 2 - Tạo một ứng dụng cơ sởBây giờ bạn đã thiết lập môi trường lập trình của mình, bạn sẽ bắt đầu sử dụng bình. Trong bước này, bạn sẽ tạo một ứng dụng web nhỏ bên trong tệp Python và chạy nó để khởi động máy chủ, điều này sẽ hiển thị một số thông tin trên trình duyệt. Trong thư mục 2 của bạn, hãy mở một tệp có tên 7 để chỉnh sửa, sử dụng 8 hoặc trình soạn thảo văn bản yêu thích của bạn:
Tệp 7 này sẽ đóng vai trò là một ví dụ tối thiểu về cách xử lý các yêu cầu HTTP. Bên trong nó, bạn sẽ nhập đối tượng 0 và tạo một hàm trả về phản hồi HTTP. Viết mã sau bên trong 7:flask_blog/hello.py
Trong khối mã trước, trước tiên bạn nhập đối tượng 0 từ gói 3. Sau đó, bạn sử dụng nó để tạo phiên bản ứng dụng bình của bạn với tên 4. Bạn vượt qua biến đặc biệt 5 giữ tên của mô -đun Python hiện tại. Nó được sử dụng để nói với trường hợp mà nó nằm ở vị trí của bạn, bạn cần điều này bởi vì Flask thiết lập một số đường dẫn phía sau hậu trường.Khi bạn tạo phiên bản 4, bạn sử dụng nó để xử lý các yêu cầu web đến và gửi phản hồi cho người dùng. 7 là một người trang trí biến hàm python thông thường thành hàm xem bình, để chuyển đổi giá trị trả về chức năng thành một phản hồi HTTP để được hiển thị bởi máy khách HTTP, chẳng hạn như trình duyệt web. Bạn chuyển giá trị 8 sang 9 để biểu thị rằng hàm này sẽ đáp ứng các yêu cầu web cho URL 00, đây là URL chính.Hàm xem 01 Trả về chuỗi 02 dưới dạng phản hồi.Lưu và đóng tập tin. Để chạy ứng dụng web của bạn, trước tiên bạn sẽ nói cho Flask nơi tìm ứng dụng (tệp 7 trong trường hợp của bạn) với biến môi trường 04:
Sau đó chạy nó trong chế độ phát triển với biến môi trường 05:
Cuối cùng, chạy ứng dụng bằng lệnh 06:
Khi ứng dụng đang chạy, đầu ra sẽ như thế này: 0Đầu ra trước có một số thông tin, chẳng hạn như:
Mở trình duyệt và nhập vào URL 08, bạn sẽ nhận được chuỗi 13 dưới dạng phản hồi, điều này xác nhận rằng ứng dụng của bạn đang chạy thành công.Flask Flask sử dụng một máy chủ web đơn giản để phục vụ ứng dụng của chúng tôi trong môi trường phát triển, điều đó cũng có nghĩa là trình gỡ lỗi Flask đang chạy để làm cho lỗi bắt dễ dàng hơn. Máy chủ phát triển này không nên được sử dụng trong triển khai sản xuất. Xem trang Tùy chọn triển khai trên tài liệu Flask để biết thêm thông tin, bạn cũng có thể xem hướng dẫn triển khai Flask này. Flask uses a simple web server to serve our application in a development environment, which also means that the Flask debugger is running to make catching errors easier. This development server should not be used in a production deployment. See the Deployment Options page on the Flask documentation for more information, you can also check out this Flask deployment tutorial. Bây giờ bạn có thể để máy chủ phát triển chạy trong thiết bị đầu cuối và mở một cửa sổ thiết bị đầu cuối khác. Di chuyển vào thư mục dự án nơi tọa lạc 7, kích hoạt môi trường ảo, đặt các biến môi trường 05 và 04 và tiếp tục các bước tiếp theo. (Các lệnh này được liệt kê sớm hơn trong bước này.)Lưu ý: Khi mở một thiết bị đầu cuối mới, điều quan trọng cần nhớ là kích hoạt môi trường ảo và thiết lập các biến môi trường 05 and 04.Mặc dù máy chủ phát triển của ứng dụng Flask đã chạy, nhưng không thể chạy một ứng dụng bình khác với cùng một lệnh 06. Điều này là do 06 sử dụng số cổng 21 theo mặc định và một khi nó được thực hiện, nó sẽ không có sẵn để chạy một ứng dụng khác trên để bạn sẽ nhận được một lỗi tương tự như sau: 1Để giải quyết vấn đề này, hãy dừng máy chủ hiện đang chạy qua 22, sau đó chạy lại 06 hoặc nếu bạn muốn chạy cả hai cùng một lúc, bạn có thể chuyển một số cổng khác cho đối số 24 Ứng dụng trên cổng 25 Sử dụng lệnh sau: 2Bây giờ bạn có một ứng dụng web nhỏ. Bạn đã chạy ứng dụng của mình và hiển thị thông tin trên trình duyệt web. Tiếp theo, bạn sẽ sử dụng các tệp HTML trong ứng dụng của mình. Bước 3 - Sử dụng các mẫu HTMLHiện tại ứng dụng của bạn chỉ hiển thị một thông báo đơn giản mà không có HTML. Các ứng dụng web chủ yếu sử dụng HTML để hiển thị thông tin cho khách truy cập, do đó, hiện tại bạn sẽ làm việc để kết hợp các tệp HTML trong ứng dụng của mình, có thể được hiển thị trên trình duyệt web. Flask cung cấp chức năng trợ giúp 26 cho phép sử dụng công cụ mẫu Jinja. Điều này sẽ giúp việc quản lý HTML dễ dàng hơn nhiều bằng cách viết mã HTML của bạn trong các tệp 27 cũng như sử dụng logic trong mã HTML của bạn. Bạn sẽ sử dụng các tệp HTML này, (mẫu) để xây dựng tất cả các trang ứng dụng của bạn, chẳng hạn như trang chính mà bạn sẽ hiển thị các bài đăng trên blog hiện tại, trang của bài đăng trên blog, trang nơi người dùng có thể thêm một người dùng mới bài, và như vậy.Trong bước này, bạn sẽ tạo ứng dụng bình chính của mình trong một tệp mới. Đầu tiên, trong thư mục 2 của bạn, hãy sử dụng 8 hoặc trình soạn thảo yêu thích của bạn để tạo và chỉnh sửa tệp 30 của bạn. Điều này sẽ chứa tất cả các mã bạn sẽ sử dụng để tạo ứng dụng viết blog: 3Trong tệp mới này, bạn sẽ nhập đối tượng 0 để tạo phiên bản ứng dụng bình như bạn đã làm trước đây. Bạn cũng sẽ nhập chức năng trợ giúp 26 cho phép bạn hiển thị các tệp mẫu HTML tồn tại trong thư mục 33 mà bạn sắp tạo. Tệp sẽ có một chức năng Chế độ xem duy nhất chịu trách nhiệm xử lý các yêu cầu đối với tuyến đường chính 00. Thêm nội dung sau:flask_blog/app.py 4Hàm xem 35 trả về kết quả của việc gọi 26 với 37 làm đối số, điều này cho 26 tìm một tệp gọi là 37 trong thư mục mẫu. Cả thư mục và tệp chưa tồn tại, bạn sẽ gặp lỗi nếu bạn chạy ứng dụng vào thời điểm này. Tuy nhiên, bạn sẽ điều hành nó để bạn quen thuộc với ngoại lệ thường gặp này. Sau đó, bạn sẽ sửa nó bằng cách tạo thư mục và tệp cần thiết.Lưu và thoát khỏi tập tin. Dừng máy chủ phát triển trong thiết bị đầu cuối khác của bạn chạy ứng dụng 40 với 22.Trước khi bạn chạy ứng dụng, hãy đảm bảo bạn chỉ định chính xác giá trị cho biến môi trường 04, vì bạn không còn sử dụng ứng dụng 40: 5Mở URL 08 trong trình duyệt của bạn sẽ dẫn đến trang trình gỡ lỗi thông báo cho bạn rằng mẫu 37 không được tìm thấy. Dòng chính trong mã chịu trách nhiệm cho lỗi này sẽ được tô sáng. Trong trường hợp này, nó là dòng 46.Nếu bạn nhấp vào dòng này, trình gỡ lỗi sẽ tiết lộ nhiều mã hơn để bạn có nhiều bối cảnh hơn để giúp bạn giải quyết vấn đề. Để khắc phục lỗi này, hãy tạo một thư mục gọi là 33 bên trong thư mục 2 của bạn. Sau đó, bên trong nó, mở một tệp có tên 37 để chỉnh sửa: 6Tiếp theo, thêm mã HTML sau đây 37:flask_blog/templates/index.html 7Lưu tệp và sử dụng trình duyệt của bạn để điều hướng đến 08 hoặc làm mới trang. Lần này trình duyệt sẽ hiển thị văn bản 52 trong thẻ 53.Ngoài thư mục 33, các ứng dụng web Flask cũng thường có thư mục 55 để lưu trữ các tệp tĩnh, chẳng hạn như tệp CSS, tệp JavaScript và hình ảnh mà ứng dụng sử dụng.Bạn có thể tạo tệp bảng kiểu 56 để thêm CSS vào ứng dụng của bạn. Đầu tiên, hãy tạo một thư mục gọi là 55 bên trong thư mục chính 2 chính của bạn: 8Sau đó, tạo một thư mục khác được gọi là 59 bên trong thư mục 55 để lưu trữ các tệp 61. Điều này thường được thực hiện để sắp xếp các tệp tĩnh trong các thư mục chuyên dụng, như vậy, các tệp JavaScript thường sống bên trong một thư mục gọi là 62, hình ảnh được đặt trong một thư mục gọi là 63 (hoặc 64), v.v. Lệnh sau đây sẽ tạo thư mục 59 bên trong thư mục 55: 9Sau đó mở một tệp 56 bên trong thư mục 59 để chỉnh sửa: 0Thêm quy tắc CSS sau vào tệp 56 của bạn:flask_blog/static/css/style.css 1Mã CSS sẽ thêm một đường viền, thay đổi màu thành nâu, giữa văn bản và thêm một chút đệm vào thẻ 53.Lưu và đóng tập tin. Tiếp theo, hãy mở tệp mẫu 37 để chỉnh sửa: 2Bạn sẽ thêm một liên kết vào tệp 56 bên trong phần 73 của tệp mẫu 37:flask_blog/templates/index.html 3Tại đây bạn sử dụng chức năng trợ giúp 75 để tạo vị trí thích hợp của tệp. Đối số đầu tiên chỉ định rằng bạn liên kết với một tệp tĩnh và đối số thứ hai là đường dẫn của tệp bên trong thư mục tĩnh.Lưu và đóng tập tin. Tiếp theo, hãy mở tệp mẫu 37 để chỉnh sửa:Bạn sẽ thêm một liên kết vào tệp 56 bên trong phần 73 của tệp mẫu 37:Tại đây bạn sử dụng chức năng trợ giúp 75 để tạo vị trí thích hợp của tệp. Đối số đầu tiên chỉ định rằng bạn liên kết với một tệp tĩnh và đối số thứ hai là đường dẫn của tệp bên trong thư mục tĩnh.Khi làm mới trang chỉ mục của ứng dụng của bạn, bạn sẽ nhận thấy rằng văn bản 52 hiện đang ở màu nâu, tập trung và kín bên trong một đường viền. 4Bạn có thể sử dụng ngôn ngữ CSS để tạo kiểu cho ứng dụng và làm cho nó hấp dẫn hơn khi sử dụng thiết kế của riêng bạn. Tuy nhiên, nếu bạn không phải là nhà thiết kế web hoặc nếu bạn không quen thuộc với CSS, thì bạn có thể sử dụng bộ công cụ Bootstrap, cung cấp các thành phần dễ sử dụng để tạo kiểu cho ứng dụng của bạn. Trong dự án này, chúng tôi sẽ sử dụng bootstrap. flask_blog/templates/base.html 5Bạn có thể đoán rằng việc tạo một mẫu HTML khác có nghĩa là lặp lại hầu hết mã HTML mà bạn đã viết trong mẫu 37. Bạn có thể tránh sự lặp lại mã không cần thiết với sự trợ giúp của tệp mẫu cơ sở, tất cả các tệp HTML của bạn sẽ được kế thừa. Xem Kế thừa mẫu trong Jinja để biết thêm thông tin.Để tạo một mẫu cơ sở, trước tiên hãy tạo một tệp có tên 78 bên trong thư mục 33 của bạn:Tuy nhiên, các phần được tô sáng sau đây là dành riêng cho công cụ mẫu Jinja:
Bây giờ bạn có một mẫu cơ sở, bạn có thể tận dụng nó bằng cách sử dụng kế thừa. Mở tệp 37: 2Sau đó thay thế nội dung của nó bằng cách sau: flask_blog/mplates/index.html 7Trong phiên bản mới này của mẫu 37, bạn sử dụng thẻ 93 để kế thừa từ mẫu 78. Sau đó, bạn mở rộng nó thông qua việc thay thế khối 95 trong mẫu cơ sở bằng những gì bên trong khối 95 trong khối mã trước.Khối 95 này chứa thẻ 53 với văn bản 52 bên trong khối 00, lần lượt thay thế khối 00 gốc trong mẫu 78 bằng văn bản 52. Bằng cách này, bạn có thể tránh lặp lại cùng một văn bản hai lần, vì nó hoạt động cả dưới dạng tiêu đề cho trang và một tiêu đề xuất hiện bên dưới thanh điều hướng được kế thừa từ mẫu cơ sở.Kế thừa mẫu cũng cung cấp cho bạn khả năng sử dụng lại mã HTML mà bạn có trong các mẫu khác ( 78 trong trường hợp này) mà không phải lặp lại mỗi lần cần thiết.Lưu và đóng tệp và làm mới trang chỉ mục trên trình duyệt của bạn. Bạn sẽ thấy trang của bạn với một thanh điều hướng và tiêu đề kiểu dáng. Bạn đã sử dụng các mẫu HTML và các tệp tĩnh trong bình. Bạn cũng đã sử dụng Bootstrap để bắt đầu tinh chỉnh giao diện của trang của bạn và một mẫu cơ sở để tránh sự lặp lại mã. Trong bước tiếp theo, bạn sẽ thiết lập một cơ sở dữ liệu sẽ lưu trữ dữ liệu ứng dụng của bạn. Bước 4 - Thiết lập cơ sở dữ liệuTrong bước này, bạn sẽ thiết lập một cơ sở dữ liệu để lưu trữ dữ liệu, nghĩa là các bài đăng trên blog cho ứng dụng của bạn. Bạn cũng sẽ điền vào cơ sở dữ liệu với một vài mục ví dụ. Bạn sẽ sử dụng tệp cơ sở dữ liệu SQLite để lưu trữ dữ liệu của mình vì mô -đun 05 mà chúng tôi sẽ sử dụng để tương tác với cơ sở dữ liệu, có sẵn trong thư viện Python tiêu chuẩn. Để biết thêm thông tin về SQLite, hãy xem hướng dẫn này.Đầu tiên, vì dữ liệu trong SQLite được lưu trữ trong các bảng và cột và vì dữ liệu của bạn chủ yếu bao gồm các bài đăng trên blog, trước tiên bạn cần tạo một bảng có tên 06 với các cột cần thiết. Bạn sẽ tạo một tệp 07 chứa các lệnh SQL để tạo bảng 06 với một vài cột. Sau đó, bạn sẽ sử dụng tệp này để tạo cơ sở dữ liệu.Mở một tệp có tên 09 bên trong thư mục 2 của bạn: 8Nhập các lệnh SQL sau đây bên trong tệp này: flask_blog/schema.sql 9Lưu và đóng tập tin. Lệnh SQL đầu tiên là 11, điều này xóa bất kỳ bảng hiện có nào có tên 06 để bạn không nhận được hành vi khó hiểu. Lưu ý rằng điều này sẽ xóa tất cả nội dung bạn có trong cơ sở dữ liệu bất cứ khi nào bạn sử dụng các lệnh SQL này, vì vậy hãy đảm bảo bạn không viết bất kỳ nội dung quan trọng nào trong ứng dụng web cho đến khi bạn hoàn thành hướng dẫn này và thử nghiệm kết quả cuối cùng. Tiếp theo, 13 được sử dụng để tạo bảng 06 với các cột sau:
Bây giờ bạn có lược đồ SQL trong tệp 09, bạn sẽ sử dụng nó để tạo cơ sở dữ liệu bằng tệp Python sẽ tạo tệp cơ sở dữ liệu SQLite 24. Mở một tệp có tên 25 bên trong thư mục 2 bằng trình soạn thảo ưa thích của bạn: 0Và sau đó thêm mã sau. flask_blog/init_db.py 1Trước tiên, bạn nhập mô -đun 05 và sau đó mở kết nối vào tệp cơ sở dữ liệu có tên 28, sẽ được tạo khi bạn chạy tệp Python. Sau đó, bạn sử dụng chức năng 29 để mở tệp 09. Tiếp theo, bạn thực hiện nội dung của nó bằng phương thức 31 thực thi nhiều câu lệnh SQL cùng một lúc, sẽ tạo bảng 06. Bạn tạo một đối tượng con trỏ cho phép bạn sử dụng phương thức 33 của nó để thực thi hai câu lệnh SQL 34 để thêm hai bài đăng trên blog vào bảng 06 của bạn. Cuối cùng, bạn cam kết các thay đổi và đóng kết nối.Lưu và đóng tệp và sau đó chạy nó trong thiết bị đầu cuối bằng lệnh 0: 2Khi tệp hoàn thành thực thi, một tệp mới có tên 28 sẽ xuất hiện trong thư mục 2 của bạn. Điều này có nghĩa là bạn đã thiết lập thành công cơ sở dữ liệu của mình.Trong bước tiếp theo, bạn sẽ truy xuất các bài đăng bạn đã chèn vào cơ sở dữ liệu của mình và hiển thị chúng trong trang chủ ứng dụng của bạn. Bước 5 - Hiển thị tất cả các bài viếtBây giờ bạn đã thiết lập cơ sở dữ liệu của mình, giờ đây bạn có thể sửa đổi chức năng xem 35 để hiển thị tất cả các bài đăng bạn có trong cơ sở dữ liệu của mình.Mở tệp 30 để thực hiện các sửa đổi sau: 3Để sửa đổi đầu tiên, bạn sẽ nhập mô -đun 05 ở đầu tệp:flask_blog/app.py 4Tiếp theo, bạn sẽ tạo một chức năng tạo kết nối cơ sở dữ liệu và trả về nó. Thêm nó trực tiếp sau khi nhập khẩu: flask_blog/app.py 5Hàm 42 này mở kết nối với tệp cơ sở dữ liệu 28 và sau đó đặt thuộc tính 44 thành 45 để bạn có thể có quyền truy cập dựa trên tên vào các cột. Điều này có nghĩa là kết nối cơ sở dữ liệu sẽ trả về các hàng hoạt động như từ điển Python thông thường. Cuối cùng, hàm trả về đối tượng kết nối 46 mà bạn sẽ sử dụng để truy cập cơ sở dữ liệu.Sau khi xác định hàm 42, hãy sửa đổi hàm 35 để trông giống như sau:flask_blog/app.py 6Trong phiên bản mới này của hàm 35, trước tiên bạn mở kết nối cơ sở dữ liệu bằng hàm 42 mà bạn đã xác định trước đó. Sau đó, bạn thực hiện truy vấn SQL để chọn tất cả các mục từ bảng 06. Bạn thực hiện phương thức 52 để tìm nạp tất cả các hàng của kết quả truy vấn, điều này sẽ trả về danh sách các bài đăng bạn đã chèn vào cơ sở dữ liệu trong bước trước.Bạn đóng kết nối cơ sở dữ liệu bằng phương thức 53 và trả về kết quả hiển thị mẫu 37. Bạn cũng vượt qua đối tượng 06 dưới dạng đối số, chứa kết quả bạn nhận được từ cơ sở dữ liệu, điều này sẽ cho phép bạn truy cập các bài đăng trên blog trong mẫu 37.Với các sửa đổi này, lưu và đóng tệp 30.Bây giờ, bạn đã chuyển các bài đăng mà bạn đã tìm nạp từ cơ sở dữ liệu sang mẫu 37, bạn có thể sử dụng vòng lặp 59 để hiển thị mỗi bài đăng trên trang chỉ mục của bạn.Mở tệp 37: 2Sau đó, sửa đổi nó để xem như sau: flask_blog/templates/index.html 8Ở đây, cú pháp 61 là vòng lặp Jinja 59, tương tự như vòng lặp Python 59 ngoại trừ sau đó nó phải được đóng lại với cú pháp 64. Bạn sử dụng cú pháp này để lặp qua từng mục trong danh sách 06 được truyền bởi hàm 35 trong dòng 67. Bên trong vòng 59 này, bạn hiển thị tiêu đề bài đăng trong một 53 hướng vào bên trong thẻ 70 (sau đó bạn sẽ sử dụng thẻ này để liên kết với mỗi bài viết riêng lẻ).Bạn hiển thị tiêu đề bằng cách phân cách biến theo nghĩa đen ( 71). Hãy nhớ rằng 72 sẽ là một đối tượng giống như từ điển, vì vậy bạn có thể truy cập vào tiêu đề bài viết với 73. Bạn cũng hiển thị ngày tạo bài bằng cách sử dụng cùng một phương thức.Khi bạn đã hoàn thành chỉnh sửa tệp, lưu và đóng nó. Sau đó điều hướng đến trang chỉ mục trong trình duyệt của bạn. Bạn sẽ thấy hai bài đăng bạn đã thêm vào cơ sở dữ liệu trên trang của mình. Bây giờ, bạn đã sửa đổi chức năng xem 35 để hiển thị tất cả các bài đăng bạn có trong cơ sở dữ liệu trên trang chủ ứng dụng của bạn, bạn sẽ chuyển sang hiển thị mỗi bài đăng trong một trang duy nhất và cho phép người dùng liên kết với từng bài đăng riêng lẻ.Bước 6 - Hiển thị một bài đăngTrong bước này, bạn sẽ tạo một tuyến bình mới với chức năng xem và mẫu HTML mới để hiển thị một bài đăng trên blog riêng lẻ bằng ID của nó. Vào cuối bước này, URL 75 sẽ là một trang hiển thị bài đăng đầu tiên (vì nó có ID 76). URL 77 sẽ hiển thị bài đăng với số 78 được liên kết nếu nó tồn tại.Mở 30 để chỉnh sửa: 3Vì bạn sẽ cần nhận được một bài đăng trên blog bằng ID của nó từ cơ sở dữ liệu ở nhiều vị trí sau trong dự án này, bạn sẽ tạo ra một chức năng độc lập có tên là 80. Bạn có thể gọi nó bằng cách chuyển nó một ID và nhận lại bài đăng trên blog được liên kết với ID được cung cấp hoặc làm cho Flask trả lời bằng tin nhắn 81 nếu bài đăng trên blog không tồn tại.Để trả lời với trang 82, bạn cần nhập chức năng 83 từ thư viện 84, được cài đặt cùng với bình, ở đầu tệp:flask_blog/app.py 0Sau đó, thêm hàm 80 ngay sau hàm 42 bạn đã tạo ở bước trước:flask_blog/app.py 1Chức năng mới này có một đối số 87 xác định bài đăng trên blog nào sẽ trả về.Bên trong chức năng, bạn sử dụng hàm 42 để mở kết nối cơ sở dữ liệu và thực hiện truy vấn SQL để nhận bài đăng trên blog được liên kết với giá trị 87 đã cho. Bạn thêm phương thức 90 để lấy kết quả và lưu trữ nó trong biến 72 sau đó đóng kết nối. Nếu biến 72 có giá trị 93, có nghĩa là không có kết quả nào được tìm thấy trong cơ sở dữ liệu, bạn sẽ sử dụng hàm 83 bạn đã nhập trước đó để trả lời mã lỗi 82 và chức năng sẽ hoàn thành thực thi. Tuy nhiên, nếu một bài đăng đã được tìm thấy, bạn trả về giá trị của biến 72.Tiếp theo, thêm chức năng chế độ xem sau ở cuối tệp 30:flask_blog/app.py 2Trong hàm chế độ xem mới này, bạn thêm một quy tắc biến 98 để chỉ định rằng phần sau khi cắt ( 00) là một số nguyên dương (được đánh dấu bằng bộ chuyển đổi 00) mà bạn cần truy cập trong hàm chế độ xem của mình. Flask nhận ra điều này và chuyển giá trị của nó cho đối số từ khóa 87 của hàm xem 02 của bạn. Sau đó, bạn sử dụng chức năng 80 để nhận bài đăng trên blog được liên kết với ID được chỉ định và lưu trữ kết quả trong biến 72 mà bạn chuyển đến mẫu 05 mà bạn sẽ sớm tạo.Lưu tệp 30 và mở tệp mẫu 05 mới để chỉnh sửa: 3Nhập mã sau trong tệp 05 mới này. Điều này sẽ tương tự như tệp 37, ngoại trừ việc nó sẽ chỉ hiển thị một bài đăng duy nhất, ngoài ra còn hiển thị nội dung của bài đăng:flask_blog/templates/post.html 4Bạn thêm khối 00 mà bạn đã xác định trong mẫu 78 để làm cho tiêu đề của trang phản ánh tiêu đề bài đăng được hiển thị trong tiêu đề 53 cùng một lúc.Lưu và đóng tập tin. Bây giờ bạn có thể điều hướng đến các URL sau để xem hai bài đăng bạn có trong cơ sở dữ liệu của mình, cùng với một trang cho người dùng biết rằng bài đăng trên blog được yêu cầu không được tìm thấy (vì không có bài đăng nào có số ID là 13 cho đến nay) : 5Quay trở lại trang Index, bạn sẽ tạo mỗi liên kết tiêu đề bài đăng đến trang tương ứng của nó. Bạn sẽ làm điều này bằng cách sử dụng chức năng 75. Đầu tiên, hãy mở mẫu 37 để chỉnh sửa: 2Sau đó thay đổi giá trị của thuộc tính 16 từ 17 thành 18 để vòng lặp 59 sẽ trông chính xác như sau:flask_blog/templates/index.html 7Tại đây, bạn chuyển 20 cho hàm 75 như một đối số đầu tiên. Đây là tên của hàm xem 02 và vì nó chấp nhận đối số 87, bạn cho nó giá trị 24. Hàm 75 sẽ trả về URL thích hợp cho mỗi bài đăng dựa trên ID của nó.Lưu và đóng tập tin. Bây giờ bạn có thể điều hướng đến các URL sau để xem hai bài đăng bạn có trong cơ sở dữ liệu của mình, cùng với một trang cho người dùng biết rằng bài đăng trên blog được yêu cầu không được tìm thấy (vì không có bài đăng nào có số ID là 13 cho đến nay) :Quay trở lại trang Index, bạn sẽ tạo mỗi liên kết tiêu đề bài đăng đến trang tương ứng của nó. Bạn sẽ làm điều này bằng cách sử dụng chức năng 75. Đầu tiên, hãy mở mẫu 37 để chỉnh sửa:Sau đó thay đổi giá trị của thuộc tính 16 từ 17 thành 18 để vòng lặp 59 sẽ trông chính xác như sau:Tại đây, bạn chuyển python -c "import flask; print(flask.__version__)" 20 cho hàm 75 như một đối số đầu tiên. Đây là tên của hàm xem python -c "import flask; print(flask.__version__)" 02 và vì nó chấp nhận đối số pip install flask 87, bạn cho nó giá trị python -c "import flask; print(flask.__version__)" 24. Hàm 75 sẽ trả về URL thích hợp cho mỗi bài đăng dựa trên ID của nó.Các liên kết trên trang chỉ mục bây giờ sẽ hoạt động như mong đợi. Với điều này, bây giờ bạn đã hoàn thành việc xây dựng một phần của ứng dụng chịu trách nhiệm hiển thị các bài đăng trên blog trong cơ sở dữ liệu của bạn. Tiếp theo, bạn sẽ thêm khả năng tạo, chỉnh sửa và xóa các bài đăng trên blog vào ứng dụng của bạn. Bước 7 - Sửa đổi bài viết 3Bây giờ bạn đã hoàn thành việc hiển thị các bài đăng trên blog có trong cơ sở dữ liệu trên ứng dụng web, bạn cần cho phép người dùng ứng dụng của mình viết các bài đăng trên blog mới và thêm chúng vào cơ sở dữ liệu, chỉnh sửa các bài đăng hiện có và xóa không cần thiết bài đăng trên blog.
Thêm nhập vào tệp của bạn như sau: flask_blog/app.py 9Các lưu trữ chức năng 29 đã nhấp nháy các tin nhắn trong phiên trình duyệt của máy khách, yêu cầu đặt khóa bí mật. Khóa bí mật này được sử dụng để bảo mật các phiên, cho phép Bình ghi nhớ thông tin từ yêu cầu này sang yêu cầu khác, chẳng hạn như chuyển từ trang bài đăng mới sang trang chỉ mục. Người dùng có thể truy cập thông tin được lưu trữ trong phiên, nhưng không thể sửa đổi nó trừ khi họ có khóa bí mật, vì vậy bạn không bao giờ được cho phép bất cứ ai truy cập khóa bí mật của bạn. Xem tài liệu Flask cho các phiên để biết thêm thông tin.Để đặt khóa bí mật, bạn sẽ thêm cấu hình 32 vào ứng dụng của mình thông qua đối tượng 33. Thêm trực tiếp theo định nghĩa 4 trước khi xác định chức năng xem 35:flask_blog/app.py 0Hãy nhớ rằng khóa bí mật phải là một chuỗi ngẫu nhiên dài. Sau khi đặt khóa bí mật, bạn sẽ tạo chức năng xem sẽ hiển thị một mẫu hiển thị biểu mẫu bạn có thể điền vào để tạo một bài đăng trên blog mới. Thêm chức năng mới này ở dưới cùng của tệp: flask_blog/app.py 1Điều này tạo ra một tuyến đường 36 chấp nhận cả yêu cầu GET và POST. Nhận yêu cầu được chấp nhận theo mặc định. Để chấp nhận các yêu cầu POST, được gửi bởi trình duyệt khi gửi biểu mẫu, bạn sẽ chuyển một tuple với các loại yêu cầu được chấp nhận cho đối số 37 của trình trang trí 9.Lưu và đóng tập tin. Để tạo mẫu, hãy mở một tệp có tên 39 bên trong thư mục 33 của bạn: 2Thêm mã sau bên trong tệp mới này: flask_blog/templates/create.html 3Hầu hết các mã này là HTML tiêu chuẩn. Nó sẽ hiển thị một hộp đầu vào cho tiêu đề bài đăng, một vùng văn bản cho nội dung bài đăng và một nút để gửi biểu mẫu. Giá trị của đầu vào tiêu đề bài đăng là 41 và khu vực văn bản có giá trị 42, điều này được thực hiện để dữ liệu bạn nhập không bị mất nếu có sự cố. Ví dụ: nếu bạn viết một bài viết dài và bạn quên cung cấp cho nó một tiêu đề, một tin nhắn sẽ được hiển thị thông báo cho bạn rằng tiêu đề là bắt buộc. Điều này sẽ xảy ra mà không mất bài đăng bạn đã viết vì nó sẽ được lưu trữ trong đối tượng toàn cầu 27 mà bạn có quyền truy cập trong các mẫu của mình.Bây giờ, với máy chủ phát triển đang chạy, hãy sử dụng trình duyệt của bạn để điều hướng đến tuyến 36: 4Bạn sẽ thấy một trang tạo một bài đăng mới với một hộp cho một tiêu đề và nội dung.Create a New Post page with a box for a title and content. Biểu mẫu này gửi một yêu cầu bài đăng cho chức năng xem 45 của bạn. Tuy nhiên, không có mã nào để xử lý một yêu cầu POST trong hàm, vì vậy chưa có gì xảy ra sau khi điền vào biểu mẫu và gửi nó.Bạn sẽ xử lý yêu cầu bài đăng đến khi một biểu mẫu được gửi. Bạn sẽ làm điều này bên trong chức năng xem 45. Bạn có thể xử lý riêng yêu cầu POST bằng cách kiểm tra giá trị của 47. Khi giá trị của nó được đặt thành 48, điều đó có nghĩa là yêu cầu là yêu cầu POST, sau đó bạn sẽ tiến hành trích xuất dữ liệu đã gửi, xác thực và chèn nó vào cơ sở dữ liệu của bạn.Mở tệp 30 để chỉnh sửa: 3Sửa đổi chức năng xem 45 để xem chính xác như sau:flask_blog/app.py 6Trong câu lệnh 51, bạn đảm bảo rằng mã sau đó chỉ được thực thi khi yêu cầu là yêu cầu POST thông qua so sánh 52.
Sau đó, bạn trích xuất tiêu đề và nội dung đã gửi từ đối tượng 53 cho phép bạn truy cập vào dữ liệu biểu mẫu trong yêu cầu. Nếu tiêu đề không được cung cấp, điều kiện 54 sẽ được thực hiện, hiển thị thông báo cho người dùng thông báo cho họ rằng tiêu đề là bắt buộc. Mặt khác, nếu tiêu đề được cung cấp, bạn mở kết nối với hàm 42 và chèn tiêu đề và nội dung bạn nhận được vào bảng 06.Sau đó, bạn cam kết các thay đổi cho cơ sở dữ liệu và đóng kết nối. Sau khi thêm bài đăng trên blog vào cơ sở dữ liệu, bạn chuyển hướng máy khách đến trang chỉ mục bằng hàm 30 chuyển URL được tạo bởi hàm 75 với giá trị 59 làm đối số.Lưu và đóng tập tin. Để tạo mẫu, hãy mở một tệp có tên 39 bên trong thư mục 33 của bạn: 4
2Cuối cùng, bạn sẽ hiển thị các tin nhắn đã nhấp nháy và thêm một liên kết vào thanh điều hướng trong mẫu 78 để dễ dàng truy cập vào trang mới này. Mở tệp mẫu: 4Chỉnh sửa tệp bằng cách thêm thẻ 62 mới theo liên kết 63 bên trong thẻ 64. Sau đó thêm một vòng 59 mới ngay phía trên khối 95 để hiển thị các thông báo flash bên dưới thanh điều hướng. Các thông báo này có sẵn trong bình chức năng 67 đặc biệt cung cấp:flask_blog/mẫu/base.html 9Lưu và đóng tập tin. Thanh điều hướng hiện sẽ có một mục 68 liên kết đến tuyến đường 36.Chỉnh sửa một bàiĐể một blog được cập nhật, bạn sẽ cần có khả năng chỉnh sửa các bài đăng hiện có của mình. Phần này sẽ hướng dẫn bạn thông qua việc tạo một trang mới trong ứng dụng của bạn để đơn giản hóa quá trình chỉnh sửa một bài đăng. Đầu tiên, bạn sẽ thêm một tuyến đường mới vào tệp 30. Hàm xem của nó sẽ nhận được ID của bài đăng cần được chỉnh sửa, URL sẽ ở định dạng 71 với biến 87 là ID của bài đăng. Mở tệp 30 để chỉnh sửa: 3Tiếp theo, thêm chức năng xem 74 sau ở cuối tệp. Chỉnh sửa một bài đăng hiện có tương tự như tạo một bài mới, vì vậy chức năng chế độ xem này sẽ tương tự như hàm xem 45:flask_blog/app.py 1Bài đăng bạn chỉnh sửa được xác định bởi URL và bình sẽ chuyển số ID cho hàm 74 thông qua đối số 15. Bạn thêm giá trị này vào hàm 80 để tìm nạp bài liên kết với ID được cung cấp từ cơ sở dữ liệu. Dữ liệu mới sẽ đến trong một yêu cầu POST, được xử lý bên trong điều kiện 79.Giống như khi bạn tạo một bài đăng mới, trước tiên bạn trích xuất dữ liệu từ đối tượng 53 sau đó flash một thông báo nếu tiêu đề có giá trị trống, nếu không, bạn sẽ mở kết nối cơ sở dữ liệu. Sau đó, bạn cập nhật bảng 06 bằng cách đặt một tiêu đề mới và nội dung mới trong đó ID của bài đăng trong cơ sở dữ liệu bằng với ID có trong URL.Trong trường hợp yêu cầu GET, bạn hiển thị mẫu 82 được chuyển trong biến 72 giữ giá trị trả về của hàm 80. Bạn sẽ sử dụng điều này để hiển thị tiêu đề và nội dung hiện có trên trang Chỉnh sửa.Lưu và đóng tệp, sau đó tạo mẫu 82 mới: 2Viết mã sau bên trong tệp mới này: flask_blog/templates/edit.html 3Lưu và đóng tập tin. Mã này tuân theo cùng một mẫu ngoại trừ cú pháp 86 và 87. Điều này hiển thị dữ liệu được lưu trữ trong yêu cầu nếu nó tồn tại, nếu không, nó sẽ hiển thị dữ liệu từ biến 72 được chuyển đến mẫu chứa dữ liệu cơ sở dữ liệu hiện tại.Bây giờ, điều hướng đến URL sau để chỉnh sửa bài viết đầu tiên: 4Bạn sẽ thấy một trang Chỉnh sửa bài đăng đầu tiên.Edit “First Post” page. Chỉnh sửa bài đăng và gửi biểu mẫu, sau đó đảm bảo bài đăng đã được cập nhật. Bây giờ bạn cần thêm một liên kết chỉ vào trang Chỉnh sửa cho mỗi bài đăng trên trang Index. Mở tệp mẫu 37: 2Chỉnh sửa tệp để trông giống hệt như sau: flask_blog/templates/index.html 6Lưu và đóng tập tin. Mã này tuân theo cùng một mẫu ngoại trừ cú pháp 86 và 87. Điều này hiển thị dữ liệu được lưu trữ trong yêu cầu nếu nó tồn tại, nếu không, nó sẽ hiển thị dữ liệu từ biến 72 được chuyển đến mẫu chứa dữ liệu cơ sở dữ liệu hiện tại.Bây giờ, điều hướng đến URL sau để chỉnh sửa bài viết đầu tiên:Bạn sẽ thấy một trang Chỉnh sửa bài đăng đầu tiên. Chỉnh sửa bài đăng và gửi biểu mẫu, sau đó đảm bảo bài đăng đã được cập nhật. 3Bây giờ bạn cần thêm một liên kết chỉ vào trang Chỉnh sửa cho mỗi bài đăng trên trang Index. Mở tệp mẫu 37:flask_blog/app.py 8Chỉnh sửa tệp để trông giống hệt như sau: Tại đây bạn thêm thẻ 70 vào liên kết đến hàm xem 74, chuyển trong giá trị 24 để liên kết đến trang chỉnh sửa của mỗi bài đăng với liên kết 93.Xóa một bài Lưu ý rằng bạn không hiển thị một tệp mẫu, điều này là do bạn sẽ chỉ thêm nút 01 vào trang Chỉnh sửa.Mở tệp mẫu 82: 2Sau đó thêm thẻ 03 sau sau thẻ 04 và trực tiếp trước dòng 05:flask_blog/templates/edit.html 0Bạn sử dụng phương thức 06 để hiển thị thông báo xác nhận trước khi gửi yêu cầu.Bây giờ điều hướng một lần nữa đến trang chỉnh sửa của một bài đăng trên blog và thử xóa nó: 4Vào cuối bước này, mã nguồn của dự án của bạn sẽ trông giống như mã trên trang này. Với điều này, người dùng ứng dụng của bạn hiện có thể viết các bài đăng trên blog mới và thêm chúng vào cơ sở dữ liệu, chỉnh sửa và xóa các bài đăng hiện có. Sự kết luậnHướng dẫn này đã giới thiệu các khái niệm thiết yếu của khung Python Flask. Bạn đã học cách tạo một ứng dụng web nhỏ, chạy nó trong một máy chủ phát triển và cho phép người dùng cung cấp dữ liệu tùy chỉnh thông qua các tham số URL và biểu mẫu web. Bạn cũng đã sử dụng công cụ mẫu Jinja để sử dụng lại các tệp HTML và sử dụng logic trong chúng. Khi kết thúc hướng dẫn này, giờ đây bạn có một blog web hoạt động đầy đủ tương tác với cơ sở dữ liệu SQLite để tạo, hiển thị, chỉnh sửa và xóa các bài đăng trên blog bằng cách sử dụng các truy vấn Python Language và SQL. Nếu bạn muốn tìm hiểu thêm về việc làm việc với Flask và SQLite, hãy xem hướng dẫn này về cách sử dụng mối quan hệ cơ sở dữ liệu một-nhiều với Flask và SQLite. Bạn có thể phát triển thêm ứng dụng này bằng cách thêm xác thực người dùng để chỉ người dùng đã đăng ký mới có thể tạo và sửa đổi bài đăng trên blog, bạn cũng có thể thêm nhận xét và thẻ cho mỗi bài đăng trên blog và thêm tải lên tệp để cung cấp cho người dùng khả năng đưa hình ảnh vào bài đăng. Xem tài liệu bình để biết thêm thông tin. Bình có nhiều phần mở rộng bình sản xuất cộng đồng. Sau đây là danh sách các tiện ích mở rộng mà bạn có thể cân nhắc sử dụng để làm cho quá trình phát triển của mình dễ dàng hơn:
Làm cách nào để kết nối bình python và html?Tạo một trang HTML đơn giản để hiển thị văn bản. Tạo một tuyến đường/và trở về nhà. create a route ”/” and return home. html from the function. Then run your api.py file and click on the link that it provides after running.
Làm cách nào để gửi dữ liệu từ Python đến bình HTML?Từ bình Nhập bình, Render_Template, Yêu cầu .. @app.route('/'). Sinh viên def ():. trả về render_template ('student.html'). @app.Route ('/result', setree = ['post', 'get']). Kết quả def ():. Nếu request.method == 'Post':. return render_template ("result.html", result = result). Làm cách nào để kết nối mã Python với HTML?Làm thế nào để có được URL mẫu tệp HTML trong Python.. Gọi chức năng đọc trên biến Weburl .. Biến đọc cho phép đọc nội dung của các tệp dữ liệu .. Đọc toàn bộ nội dung của URL thành một biến có tên là Dữ liệu .. Chạy mã- nó sẽ in dữ liệu vào định dạng HTML .. Làm cách nào để lấy dữ liệu từ bình sang HTML?request.form.get (Hồi fname trực tuyến) sẽ nhận đầu vào từ giá trị đầu vào có thuộc tính tên là fname và lưu trữ trong biến First_name .. request.form.get (trên mạng lname) sẽ nhận đầu vào từ giá trị đầu vào có thuộc tính tên là lname và lưu trữ trong biến last_name .. |