Lập trình đồng thời Python : Từ thu thập dữ liệu đến phát triển web (feat. FastAPI, async, await)
Chúng tôi sử dụng lập trình đồng thời/song song trong Python để thu thập dữ liệu, tải dữ liệu vào MongoDB, phân tích và phát triển ứng dụng web trực quan hóa dữ liệu được thu thập bằng FastAPI, một khung web hiện đại. Trong khóa học này, bạn sẽ tìm hiểu và hiểu về lập trình song song/đồng thời Python bằng cách sử dụng coroutine, đa luồng và đa xử lý cũng như cách sử dụng chúng để tăng hiệu suất trong Python. Chúng tôi giúp bạn áp dụng trực tiếp mã song song/đồng thời của Python vào thực hành. Thay vì chỉ phát triển, chúng tôi sẽ hướng dẫn bạn cách triển khai và vận hành một ứng dụng thực tế trên đám mây AWS.
Nguyên tắc thiết kế mã lập trình đồng thời/song song
Coroutine Python, lập trình không đồng bộ
Kỹ thuật đa luồng, đa xử lý Python
Kiến thức về hệ điều hành về các tiến trình và luồng
Đang tải dữ liệu lớn không có cấu trúc bằng MongoDB
Phát triển máy chủ bằng FastAPI, sử dụng cổng không đồng bộ Uvicorn
Xây dựng máy chủ đám mây AWS
Thu thập dữ liệu web, trực quan hóa
Python chậm? Bay cao với lập trình đồng thời và song song!
Bài giảng Trước khi bạn bắt đầu
Khóa học này có hai mục tiêu chính: giúp bạn hiểu các khái niệm về đồng thời, song song và lập trình bất đồng bộ, đồng thời hướng dẫn bạn cách sử dụng mã nào trong từng tình huống . Trong nửa sau của khóa học, chúng ta sẽ làm việc trên một dự án thực tế sử dụng lập trình đồng thời để giúp bạn chuyển từ hiểu biết lý thuyết sang ứng dụng thực tế các khái niệm.
Lập trình đồng thời, không đồng bộ và song song Với cú pháp Python mới nhất
Kể từ phiên bản Python 3.7, khả năng hỗ trợ lập trình đồng thời, bất đồng bộ và song song đã được mở rộng đáng kể. Khi nhu cầu về các tính năng này tăng lên, nhiều framework và thư viện hỗ trợ lập trình đồng thời, bất đồng bộ và song song đã xuất hiện. Tuy nhiên, nhiều người gặp khó khăn với cú pháp luôn thay đổi của Python. Hơn nữa, nhiều người đã học lý thuyết lại không chắc chắn về cách thức và thời điểm áp dụng cú pháp vào thực tế. Khóa học này sẽ giúp bạn áp dụng ngay các khái niệm về đồng thời, bất đồng bộ và song song bằng cách cung cấp đào tạo thực tế theo cú pháp Python mới nhất .
Đồng thời và song song cùng lúc
Bài giảng này đề cập đến cả đồng thời và song song, minh họa các ứng dụng thực tế. Do đó, tiêu đề "Lập trình đồng thời" mang hai nghĩa: đồng thời trong ngữ cảnh đồng thời và song song, và đồng thời theo nghĩa "cùng lúc ". Lý do là vì song song thường được diễn đạt là "đồng thời" hoặc "cùng lúc".
Bài giảng này Tôi muốn giới thiệu điều này tới những người này
Đồng thời? Song song? Tất cả những điều này là gì?
Đồng thời và song song Nó là gì và tại sao nó lại cần thiết Nếu bạn muốn hiểu
Với cú pháp Python mới nhất Lập trình đồng thời
Đồng thời, không đồng bộ và song song Ngữ pháp được cập nhật Nếu bạn muốn viết
Cú pháp đồng thời của Python Trong thực tế cũng vậy
Nó cũng có thể được áp dụng trong thực tế Sự đồng thời có thể được Lập trình
Các nhà phát triển phần cuối cũng vậy FastAPI tò mò
Sử dụng cú pháp không đồng bộ một cách chủ động FastAPI đã sử dụng Nếu bạn muốn thử nó
Các nhà phân tích dữ liệu và nhà phát triển muốn tăng tốc chương trình Python của họ
Những người muốn học ngữ pháp đồng thời, bất đồng bộ và song song theo ngữ pháp Python mới nhất
Những người muốn áp dụng ngay lập tức lập trình đồng thời, không đồng bộ và song song của Python vào thực tế.
Các nhà phát triển phần mềm muốn tìm hiểu FastAPI, một nền tảng web sử dụng cú pháp không đồng bộ.
Bài giảng này Điều này cũng sẽ giúp ích cho những người như thế này.
Nhà phát triển JavaScript (ngôn ngữ lập trình không đồng bộ) đang học Python
Lập trình đồng thời trong Python: Từ thu thập dữ liệu đến phát triển web
Lập trình đồng thời
Giao tiếp giữa máy khách và máy chủ
Đọc/ghi các tập tin đĩa hệ thống
Hoạt động truy vấn cơ sở dữ liệu
Sử dụng API
Lập trình song song
Xử lý video, âm thanh hoặc hình ảnh
tầm nhìn máy tính
học máy
Học sâu
Bài giảng này Nó diễn ra như thế này
Python Coroutine và Hàm bất đồng bộ
Tìm hiểu về thuật ngữ cơ bản và coroutine của Python.
Chúng tôi sẽ giải thích và sắp xếp các thuật ngữ quan trọng nhưng khó hiểu như bind, blocking, synchronous, asynchronous, subroutine và coroutine bằng cách sử dụng sơ đồ tư duy và mã.
Cuốn sách này giới thiệu lập trình bất đồng bộ cơ bản trong Python sử dụng coroutine. Nó cũng chứng minh, thông qua các ví dụ thực tế (chẳng hạn như hoạt động I/O mạng và CPU), lý do tại sao lập trình bất đồng bộ lại cần thiết để tăng tốc các tình huống cụ thể.
Đa luồng và đa xử lý Python
Đa luồng? Đa xử lý? Đồng thời? Song song?
Chúng ta sẽ triển khai chương trình dựa trên coroutine được phát triển trong Phần 1 bằng các kỹ thuật đa luồng tận dụng tính đồng thời (song song) trên nhiều luồng. Điều này sẽ giúp bạn hiểu cách xử lý mã đồng bộ song song mà không cần sự trợ giúp của mô-đun asyncio. Chúng tôi cũng sẽ giải thích, bằng các ví dụ, tại sao lập trình song song đa luồng trong Python là không thể do Khóa Thông dịch Toàn cục (GIL) của Python.
Chúng ta sẽ triển khai một chương trình sử dụng kỹ thuật đa xử lý để xử lý song song. Chương trình này sẽ hướng dẫn bạn cách sử dụng đa xử lý trong Python và giải thích cách thiết kế mã cho xử lý phân tán trong Python, trong những trường hợp nào.
Thu thập dữ liệu bằng lập trình đồng thời
Áp dụng tính đồng thời và bất đồng bộ vào các dự án thực tế
Dựa trên các lý thuyết đã học, chúng ta sẽ phát triển một trình thu thập dữ liệu web và một trình thu thập dữ liệu bằng cách sử dụng các API mở. Chúng ta cũng sẽ dành thời gian phát triển các chương trình thực tế và làm quen với lập trình đồng thời.
Dự án thực tế: "Ứng dụng web thu thập dữ liệu" với FastAPI
MongoDB CRUD, trực quan hóa dữ liệu và phát triển web với lập trình đồng thời
Dựa trên lý thuyết đã học, chúng ta sẽ phát triển một "ứng dụng web thu thập dữ liệu". Dự án này sử dụng lập trình đồng thời để thu thập dữ liệu trên web và lưu trữ dữ liệu đã thu thập được trong MongoDB. Chúng ta sẽ kết nối MongoDB với FastAPI để phát triển một ứng dụng web có khả năng phân tích và trực quan hóa dữ liệu đã lưu trữ. Dự án này sẽ giúp bạn hiểu và áp dụng lập trình đồng thời và bất đồng bộ vào các tình huống thực tế.
Triển khai dự án với AWS Cloud Computing
Dự án không chỉ dừng lại ở việc phát triển đơn giản. Chúng tôi cũng sẽ hướng dẫn bạn cách triển khai ứng dụng web lên máy chủ bằng công nghệ điện toán đám mây AWS.
Bài giảng thưởng
Bài giảng được cập nhật thông qua các câu hỏi
Các bài giảng ngữ pháp Python cần thiết cho khóa học này sẽ được tải lên liên tục.
Những câu hỏi quan trọng sẽ được trả lời và tải lên liên tục trong các bài giảng bổ sung.
Câu hỏi bài giảng dự kiến Hỏi & Đáp
H. Cần có bao nhiêu kiến thức về Python?
Để tham gia khóa học này, bạn cần có kiến thức Python cơ bản về biến, câu lệnh điều kiện, vòng lặp, hàm và cú pháp lớp. Các cú pháp khó hơn mà bạn gặp phải trong suốt khóa học có thể được giải đáp thông qua các bài giảng bổ sung được đăng tải thường xuyên.
H. Có lưu ý nào liên quan đến khóa học không (yêu cầu về môi trường, các biện pháp phòng ngừa khác, v.v.)?
Quá trình này được thực hiện trong môi trường có phiên bản Python là 3.7 trở lên.
Người chia sẻ kiến thức Những gì tôi muốn nói
Bài giảng sẽ tiếp tục trong tương lai Nó sẽ được cập nhật liên tục
Công nghệ luôn thay đổi. Người ta nói rằng nếu bạn không thể sửa được mã đã viết trước đây, bạn chẳng học được gì cả. Khi các phiên bản Python được nâng cấp, chúng tôi sẽ cập nhật các khóa học để phản ánh các phiên bản mới, giúp bạn học được những kỹ thuật tốt hơn.
Câu hỏi là Bạn luôn được chào đón
Nếu bạn gặp bất kỳ thắc mắc nào hoặc cần giải thích thêm trong suốt khóa học, chúng tôi sẽ cung cấp câu trả lời hợp lý, dựa trên tình huống thực tế. Chúng tôi rất mong nhận được câu hỏi của bạn!
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Bất kỳ ai muốn tăng tốc chương trình Python thông qua lập trình đồng thời
Bất cứ ai muốn sử dụng lập trình đồng thời Python ngay trong thực tế
Bất cứ ai muốn tải và quản lý dữ liệu trong MongoDB
Nhà phát triển phụ trợ khởi nghiệp muốn áp dụng FastAPI
Bất kỳ ai muốn thu thập dữ liệu hiệu quả thông qua lập trình đồng thời
Những người muốn vượt xa sự phát triển và thực sự triển khai và vận hành các ứng dụng web
Cần biết trước khi bắt đầu?
Kiến thức cơ bản về Python (biến, câu lệnh điều kiện, vòng lặp, hàm, v.v.)
Xin chào Đây là
5,893
Học viên
306
Đánh giá
358
Trả lời
4.7
Xếp hạng
4
Các khóa học
안녕하세요. 더 유익하고 본질적인 지식 콘텐츠로 많은 가치를 드릴 수 있도록 노력하겠습니다.
I would like to recommend this to those who are familiar with Python grammar and have some experience using Python. I only roughly understood the asynchronous method with my eyes, but I have never properly understood it and used it. It was refreshing and fun to actually implement some actions using the asynchronous method. The lecture did not just teach the core parts, but it was good that it explained the necessary contents first before explaining the core contents of the lecture in a way that felt like a beginning, development, turn, and conclusion(?). (Before explaining concurrency and parallelism, it explained basic concepts such as CPU, process, and thread.) Although this seems basic, there are many lectures that do not follow it well. If you upload lectures on Python or Python frameworks in the future, I would like to listen to them all. Thank you for the great lecture.
This is one of the best lectures among the best lectures.
First of all, I came here because I wanted to use fast API, but while learning asynchronous programming, I realized that I am still a person who is lacking in many ways.
However, the instructor explained it in detail and in an easy-to-understand manner, so it was a very satisfying lecture.
I would pay and listen even if it cost more than 100,000 won, adding a little exaggeration...
This lecture covers everything from back-end to front-end and server deployment.
After listening to this lecture, you will be able to expand your horizons by gaining similar experience before doing something difficult like Spring framework, and it will be a good specification for those who have never done server deployment before.
I will diligently review the contents that the instructor taught me and develop them into projects to make them my knowledge.
Thank you again ㅎㅎㅎ
Can I ask you to teach Spring Framework next time.. ㅠㅠ You really teach so well, thank you!!
Thank you for the good review. I am proud :) I don't have any plans for Spring right now, but I will definitely remember it! Reviews like this give me the strength to prepare for the next lecture.
It seems like a really informative and well-made lecture. I've taken a variety of lectures, but this lecture was really refreshing in many ways.
I came to know about this lecture because I was interested in FastAPI and was looking for it... After taking this lecture, I realized that the important thing was not to learn the framework uniformly, but the async concept underlying the framework. I was moved three times in total: once because I could quickly taste FastAPI, once because I learned the important concepts underlying it, and once again because I got a sense of how to study on my own in the future...ㅠㅠ
I'm currently taking the instructor's OOP lecture, and the common elements are:
1. Choosing concepts and frameworks that are trendy and important in the industry,
2. Breaking the concept (topic) into one lecture unit (+ each lecture is independent of each other),
3. A method that allows you to quickly understand and apply only the key points (is this true microlearning?),
4. A moderately fast pace that is not boring,
5. Friendly explanations in between so that no one gets lost,
6. Appropriate lecture length (I think the shorter the time it takes to convey the same knowledge, the better)
7. Structure of interesting practical content
These are some of the elements that I really liked.
I was very satisfied with the lecture, and please continue to make good lectures (faster) (more) in the future! :D Thank you! You worked hard~
Thank you so much for the detailed course review!! Congratulations on completing the course! :) We are working on a follow-up lecture. We will repay you with a better lecture. ✨
It's the best!!! After crawling while crying and eating mustard, the speed was too slow, so I was thinking of a solution and wanted to improve my understanding of Python, and then I happened to find Inflearn and this lecture.
Although it's an appendix, it was a curriculum that I really needed because I could see AWS being used in practice. (I'm studying Python, backend, and AWS intensively.)
You also explained the basic principles concisely, so I gained a lot of knowledge. I also purchased the lectures on classes and object orientation!! I will keep watching the lectures and diligently make them mine. Please continue to provide great content in the future!!