Làm cách nào để học Python từ 0 đến phát triển web? [đóng cửa]


48

Tôi đang tìm hiểu về Python để phát triển web.

Giả sử tôi đã có một số kinh nghiệm phát triển web cơ bản với Java (JSP / Servlets), tôi đã quen với thiết kế web (HTML, CSS, JS), các khái niệm lập trình cơ bản và tôi hoàn toàn mới với Python, tôi phải làm thế nào học Python theo cách có cấu trúc mà cuối cùng sẽ dẫn tôi đến phát triển web với Python và Django?

Tôi không vội tạo ra các ứng dụng web bằng Python vì vậy tôi thực sự muốn tìm hiểu kỹ về nó để không để lại bất kỳ lỗ hổng nào trong kiến ​​thức của tôi về các công nghệ liên quan đến phát triển web trong Python. Có bất kỳ cuốn sách, tài nguyên hoặc kỹ thuật để giúp tôi trong nỗ lực của tôi? Theo thứ tự tôi nên làm / đọc chúng?

CẬP NHẬT:

Khi tôi nói học theo cách có cấu trúc, tôi có nghĩa là bắt đầu từ những điều cơ bản sau đó học những thứ nâng cao mà không để lại một số chi tiết / tính năng quan trọng mà Python phải cung cấp. Tôi muốn biết làm thế nào để áp dụng những điều mà tôi đã biết trong lập trình vào Python.


6
+1 không vội. Đây là cách tốt nhất để học một ngôn ngữ, thử mọi thứ nhưng không đi sâu vào một dự án sản xuất để học một ngôn ngữ.
Chris

Câu trả lời:


49

6
Danh sách tuyệt vời! Tôi đã nghe nói Lặn vào Python là tuyệt vời cho các lập trình viên có kinh nghiệm để bắt đầu với Python.
Terence Ponce

Hiện đang làm việc với Lặn vào Python, tốc độ nhanh và là nguồn tài nguyên tuyệt vời cho các lập trình viên hiện tại muốn học ngôn ngữ! Tôi khuyên bạn nên làm việc chp 2 & 3 để xem mọi thứ diễn ra như thế nào, điều đó sẽ định hướng bạn rất tốt với cú pháp và kiểu dữ liệu :)
đảo ngược

@Terence: Tôi có thể đồng ý coi đây là chính xác những gì tôi vừa làm. Đến từ một sinh viên CSE sử dụng java, c, php (tại nơi làm việc) và nhiều ngôn ngữ khác, cuốn sách này đã đưa tôi đến với tốc độ.
Chris

+1) cho TheDjangoBook và video. Lập trình web Python cũng có thể là một lựa chọn tốt.
ravi404

15

Đừng quá coi trọng điều này, nhưng ...

  • tạo tên tệp app.pyvới nội dung sau:

    from flask import Flask
    app = Flask(__name__)
    
    @app.route("/")
    def hello():
        return "Hello World!"
    
    if __name__ == "__main__":
        app.run()
    
  • giả sử bạn có pip(python gói cài đặt) được cài đặt làm những điều sau đây:

    $ pip install Flask
    $ python app.py
    * Running on http://localhost:5000/
    
  • Bây giờ bạn có thể truy cập ứng dụng web đầu tiên của mình dưới localhost, cổng 5000.

Đó sẽ là ứng dụng web python đầu tiên của bạn. Tất cả mọi thứ sau đó là "sàng lọc" trong cấu trúc ứng dụng, chức năng và diện mạo.


8

Nếu phát triển Web trong python là những gì bạn đang tìm kiếm, thì sau khi hiểu kỹ về python, tôi khuyên bạn nên xem Flask. Django và các khung ngăn xếp đầy đủ khác chắc chắn sẽ làm cho cuộc sống của bạn dễ dàng hơn nhiều nhưng nhìn chung sẽ khiến bạn có một cảm giác không trọn vẹn như thể bạn chưa học được nhiều. Flask IMHO, là khung công tác tuyệt vời nhất trong python cho đến nay, nhưng vâng đó chỉ là ý kiến ​​của tôi.


4

Tôi cũng muốn giới thiệu Koans Python cho việc học: http://github.com/gregmalcolm/python_koans

Chúng khá giống với Ruby Koans (rất nhiều trong số đó được chuyển trực tiếp) và khá tuyệt.


1
bạn có phiền giải thích thêm về những gì nó làm không và tại sao bạn lại đề nghị nó như trả lời câu hỏi được hỏi? "Câu trả lời chỉ liên kết" không được chào đón tại Stack Exchange
gnat

3

http://learnpythonthehardway.org

Là một cuốn sách trực tuyến miễn phí có chứa một loạt 52 bài học về con trăn.

Bằng cách bắt đầu từ bài 1 và làm việc đến bài 52, bạn nên học đủ để xem mình là một lập trình viên có năng lực trong ngôn ngữ python.

Mỗi bài học có các ví dụ mã mà bạn nên dành thời gian để nhập và CHẠY sau đó THAY ĐỔI để xem điều đó thay đổi kết quả như thế nào.

Đó là quá trình mà hầu hết mọi người mà tôi biết thường học lập trình.


1
bạn có thể giải thích về điều này chi tiết hơn - làm thế nào và tại sao nó trả lời câu hỏi được hỏi? "Câu trả lời chỉ liên kết" không được chào đón tại Stack Exchange
gnat

1
Hy vọng những điều trên đáp ứng nhu cầu của bạn. Cảm ơn vì bạn đã phản hồi.
Alex C

1
Bạn chắc chắn không nên sao chép-dán các bài tập vì nó sẽ không giúp bạn học được gì cả. Từ chương đầu tiên của cuốn sách:You must type each of these exercises in, manually. If you copy and paste, you might as well just not even do them. The point of these exercises is to train your hands, your brain, and your mind in how to read, write, and see code. If you copy-paste, you are cheating yourself out of the effectiveness of the lessons.
marco-fiset

1
Cảm ơn Marco. Tôi cũng đã điều chỉnh câu trả lời để phản ánh điểm đó.
Alex C

0

Phát triển web luôn quay trở lại một điều: và đó là trình duyệt. Tìm hiểu HTML, CSS và JavaScript rất tốt và nó sẽ phục vụ bạn dù có bất kỳ thay đổi ngôn ngữ nào.

Www.w3schools.com là một nơi tuyệt vời để tìm hiểu những điều này, nhưng khi nói đến CSS, thường rất hữu ích khi chỉ cần ngồi xuống và chơi với nó. Tìm một thiết kế web thú vị và thực hiện nó trong HTML bằng tay. Đây là một kỹ năng rất, rất hoàn hảo nếu bất kỳ mã phía máy chủ nào của bạn dẫn đến HTML.

Tiếp theo, tôi thích cách tiếp cận logic của bạn, nhưng nó có thể không phải là cách tốt nhất để đi về nó. Một cách tiếp cận bổ ích hơn có thể là thiết lập mục tiêu mà bạn muốn thực hiện và học hỏi trên đường đi.

Tuy nhiên, bắt đầu với django có thể không phải là ý tưởng tốt nhất. Nhiều quyết định mà họ đưa ra khi thiết kế khung sẽ chỉ có ý nghĩa nếu bạn gặp phải những vấn đề mà họ giải quyết được. Ngôn ngữ web đầu tiên của tôi là php và cách hiệu quả nhất mà tôi hiểu được các cách thực hành tốt nhất là viết mã dễ vỡ, dễ vỡ, nhận ra rằng có một vấn đề và giải pháp lại. Nếu tôi nghiên cứu một giải pháp trước khi tôi hiểu vấn đề, tôi đã không thể áp dụng nó một cách hiệu quả.

Nếu bạn sẵn sàng dành thời gian cho việc này, có lẽ bắt đầu với một bộ công nghệ ít trừu tượng hơn như php có thể là một trải nghiệm học tập tuyệt vời.


2
Tôi nghĩ rằng bạn đã bỏ lỡ những gì tôi nói về tôi đã có kinh nghiệm phát triển web và làm quen với các khái niệm lập trình cơ bản. Tôi đã biết HTML, CSS và Javascript trước khi chuyển sang JSP / Servlets. Về cách tiếp cận (mà tôi muốn) để học Python, tôi chỉ muốn biết cách áp dụng những gì tôi đã biết trong lập trình mà không bỏ lỡ một số chi tiết / tính năng mà Python cung cấp.
Terence Ponce

Có lẽ bạn nên làm rõ bài đăng của mình, vì bạn nói rằng bạn có kinh nghiệm phát triển web cơ bản .... CSS, HTML và JavaScript có thể rất phức tạp và mạnh mẽ. Tôi chỉ đơn giản là cố gắng nhấn mạnh vào tầm quan trọng của việc họ đầu tư vào bất kỳ sự phát triển web nào.

Được chứ. Xin lỗi vì điều đó. Tôi sẽ cập nhật câu hỏi của tôi bây giờ.
Terence Ponce
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.