Các khối xây: Stacks và Libraries (tiếp tục)
Nhị phân Python bên trong virtualenv bây giờ sẽ có gói pygeocoder có sẵn.
$ python -c ‘import pygeocoder’
Bây giờ rằng bạn có gói pygeocoder được cài đặt, bạn sẽ có thể chạy chương trình đơn giản
tên search1.py, được thể hiện như sau:
#!/usr/bin/env python3
# Foundations of Python Network Programming, Third Edition
# https://github.com/brandon-rhodes/fopnp/blob/m/py3/chapter01/search1.py
from pygeocoder import Geocoder
if __name__ == ‘__main__’:
address = ‘207 N. Defiance St, Archbold, OH’
print(Geocoder.geocode(address)[0].coordinates)
Bằng cách chạy nó tại command line, bạn sẽ thấy một kết quả giống cái này:
$ python3 search1.py
(41.521954, -84.306691)
Và ở đó, ngay trên màn hình máy tính của bạn là câu trả lời cho câu hỏi của chúng ta về latitude và
longitude của địa chỉ. Câu trả lời đã được kéo trực tiếp từ dịch vụ web của Google. Chương trình ví
dụ đầu tiên đã chạy thành công.
Bạn có cảm thấy phiền khi mở học phần về Python network programming chỉ để thấy bản thân bạn được điều
hướng ngay lập tức để download và cài đặt một gói bên thứ ba và chuyển cái là vấn đề mạng thú vị thành
ba dòng script Python nhàm chán? Hãy bình tĩnh! 90 % mọi lần, bạn sẽ thấy rằng cái này chính xác là thách
thức lập trình được giải quyết như thế nào – bằng cách tìm ra các lập trình viên khác trong cộng đồng Python
người đã giải quyết vấn đề bạn gặp phải và sau đó xây dựng một cách thông minh và ngắn gọn trên những giải pháp
của họ.
Bạn chưa xong khám phá ví dụ này, tuy nhiên. Bạn đã thấy rằng một dịch vụ mạng phức tạp có thể thường được truy
cập hoàn toàn bình thường. Nhưng cái gì đằng sau giao diện pygeocoder? Dịch vụ thực sự làm việc như thế nào? Bạn
sẽ bây giờ khám phá chi tiết dịch vụ tinh vi này thực sự là tầng đỉnh của network stack như thế nào cái đòi hỏi
ít nhất nửa tá mức kĩ năng khác.