Uszipcode Tài liệu Python

def look_up_zip(self, zip, country, formatted=False). nếu quốc gia == "Mỹ". thông tin = uszipcode. Công cụ tìm kiếm (mã zip đơn giản=True). by_zipcode(zip) nếu được định dạng. thông tin = bản thân. format_place(zip, thông tin. major_city, thông tin. bang) quốc gia yêu tinh == "CA". info = PostalCodeDatabase()[zip] nếu được định dạng. thông tin = bản thân. format_place(zip, thông tin. thành phố, thông tin. tỉnh) thông tin trả lại
""" Tạo cơ sở dữ liệu mã zip đơn giản từ cơ sở dữ liệu mã zip đầy đủ dữ liệu. """ từ sqlalchemy. orm nhập sessionmaker từ uszipcode. nhập mô hình Base, Zipcode, SimpleZipcode, _simple_zipcode_columns từ uszipcode. db nhập connect_to_simple_zipcode_db, connect_to_zipcode_db simple_zipcode_engine = connect_to_simple_zipcode_db() Cơ sở. metadata. create_all(simple_zipcode_engine) zipcode_engine = connect_to_zipcode_db() zipcode_ses = sessionmaker(bind=zipcode_engine)() select_columns = [ getattr(Zipcode, name) cho tên trong _simple_zipcode_columns ] simple_zipcode_data = list() cho data_tuple trong zipcode_ses. truy vấn(*cột_đã_chọn). simple_zipcode = SimpleZipcode(**dict(list(zip(_simple_zipcode_columns, data_tuple)))) simple_zipcode_data. nối thêm(simple_zipcode) SimpleZipcode. smart_insert(simple_zipcode_engine, simple_zipcode_data)

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

**Tính năng và cải tiến**

- Cho phép nhà phát triển sử dụng url tải xuống khác trong ``Công cụ tìm kiếm (. , download_url="your-own-download-url")``. Vì vậy, nhà phát triển có thể tải tệp db lên máy chủ lưu trữ tệp riêng
- Cho phép nhà phát triển sử dụng phụ trợ cơ sở dữ liệu khác nhau như mysql, postgres, oracle, mssql trong ``SearchEngine(. , engine=custome_sqlachemy_engine)``. Vì vậy, nhà phát triển có thể kết xuất sqlite sang csv và tải nó vào bất kỳ cơ sở dữ liệu nào bạn muốn sử dụng

**Cải tiến nhỏ**

- lưu trữ lại tệp cơ sở dữ liệu trên GitHub

**Sửa lỗi**

**Điều khoản khác**

- Hỗ trợ thả < Python3. 6, chỉ hỗ trợ 3. 6+

Gói đầu tiên trong số hai gói bạn sẽ tải xuống và giải nén. Chứa các tệp dữ liệu cần thiết được sử dụng bởi chương trình đang chạy

  • chúng tôi-zipcode-api

    Gói thứ hai trong số hai gói bạn sẽ tải xuống và giải nén. Chứa chương trình chính và các tài nguyên nhị phân khác

  • us-zipcode-api

    Chương trình mà bạn sẽ thực hiện. Tìm thấy trong gói us-zipcode-api

  • Tài liệu API

    Bản cài đặt cục bộ của API Mã ZIP của Hoa Kỳ hoạt động giống hệt với phiên bản đám mây do Smarty lưu trữ. Vui lòng tham khảo tài liệu để biết chi tiết về và

    Sự khác biệt chính giữa cài đặt cục bộ và đám mây nằm ở việc khách hàng sử dụng để thiết lập kết nối. (scheme://hostname:port) Điều này sẽ được giải thích chi tiết hơn sau

    điều kiện tiên quyết

    Quyền truy cập vào các gói và tài nguyên API Mã ZIP cục bộ của Hoa Kỳ hiện bị hạn chế đối với khách hàng có tài khoản Doanh nghiệp. Tải xuống các gói cũng yêu cầu hợp lệ để xác thực

    Quá trình tải xuống, cài đặt và quản lý phiên bản cục bộ của US ZIP Code API yêu cầu quản trị viên hệ thống hoặc kỹ sư phần mềm có kinh nghiệm với hệ điều hành Linux và môi trường shell đi kèm

    Yêu cầu hệ thống tối thiểu

    API Mã ZIP của Hoa Kỳ được thiết kế để chạy trên máy chủ Linux mà bất kỳ máy khách nào bạn định gọi dịch vụ đều có thể truy cập được. Trách nhiệm bảo trì mạng và máy chủ (cũng như hiệu suất của tất cả các hoạt động khác được nêu chi tiết trong tài liệu này) thuộc về tổ chức của bạn

    Máy chủ được cung cấp để chạy các tệp nhị phân API mã ZIP cục bộ của Hoa Kỳ phải phù hợp hoặc vượt quá các tiêu chí sau

    • 2 gigabyte dung lượng ổ đĩa / 2 gigabyte RAM
    • 4 lõi CPU
    • Một phiên bản tương đối mới của nhân Linux (về cơ bản là thứ có thể chạy các chương trình Go đã biên dịch). Bất cứ điều gì muộn hơn v2. 6. 32 sẽ hoạt động bình thường

    Tải xuống các gói

    Việc chạy phiên bản cục bộ của API mã ZIP Hoa Kỳ yêu cầu hai gói có sẵn để tải xuống qua Smarty (trước đây là SmartyStreets)

    • chúng tôi-zipcode-dữ liệu

      Bao gồm tất cả dữ liệu địa chỉ được chương trình us-zipcode-api truy cập để phục vụ các yêu cầu của khách hàng

    • chúng tôi-zipcode-api

      Bao gồm chương trình đã biên dịch (tên dự phòng là us-zipcode-api) và một số thư viện dùng chung sẽ được cài đặt trong /usr/lib

    Xem để biết thêm chi tiết

    Quy trình lắp đặt

    Cả hai gói đã tải xuống đều là kho lưu trữ được nén và phải được giải nén (sử dụng lệnh

    ./us-zipcode-api -data "/path/to/extracted/data/package"
    0) trước khi có thể sử dụng chúng. Có thể tìm thấy các ví dụ về cách sử dụng lệnh tar để giải nén các tệp lưu trữ đã tải xuống

    Theo mặc định, chương trình us-zipcode-api mong đợi nội dung trích xuất của gói dữ liệu được tìm thấy tại

    ./us-zipcode-api -data "/path/to/extracted/data/package"
    2

    Quản lý quy trình API cục bộ

    • Để hiển thị việc sử dụng dòng lệnh và tất cả các tùy chọn.
      ./us-zipcode-api -help
    • Để chạy chương trình.
      ./us-zipcode-api -data "/path/to/extracted/data/package"

    GHI CHÚ. Chạy chương trình us-zipcode-api bắt đầu một quy trình được thiết kế để chạy liên tục cho đến khi bị tắt. Số phiên bản được hiển thị khi thực thi

    Kết nối với Quy trình API cục bộ

    Kết nối với quy trình us-zipcode-api cục bộ bằng TLS hiện không được hỗ trợ. Điều này có nghĩa là sơ đồ URL sẽ là

    ./us-zipcode-api -data "/path/to/extracted/data/package"
    5 thay vì
    ./us-zipcode-api -data "/path/to/extracted/data/package"
    6. Chúng tôi khuyên bạn nên sử dụng mạng riêng hoặc proxy để thiết lập kết nối được mã hóa nếu muốn. Ngoài ra, vui lòng lưu ý rằng tên máy chủ để cài đặt cục bộ sẽ không phải là ___________7. Việc sử dụng
    ./us-zipcode-api -data "/path/to/extracted/data/package"
    8. Cuối cùng, cổng mặc định cho cài đặt cục bộ là
    ./us-zipcode-api -data "/path/to/extracted/data/package"
    9 thay vì
    curl "http://localhost:8080/lookup" --data-binary '[{"zipcode": "84604"}]' | python -m json.tool
    0

    Khi chương trình us-zipcode-api đang chạy, hãy chạy lệnh sau từ một cửa sổ đầu cuối khác để gửi một yêu cầu HTTP thực sự đến quy trình

    curl "http://localhost:8080/lookup" --data-binary '[{"zipcode": "84604"}]' | python -m json.tool

    Nếu mọi thứ hoạt động chính xác thì đầu ra sẽ gần giống với đối tượng JSON sau

    [
    	{
    		"city_states": [
    			{
    				"city": "Provo",
    				"mailable_city": true,
    				"state": "Utah",
    				"state_abbreviation": "UT"
    			},
    			{
    				"city": "Provo Canyon",
    				"mailable_city": true,
    				"state": "Utah",
    				"state_abbreviation": "UT"
    			},
    			{
    				"city": "Sundance",
    				"mailable_city": true,
    				"state": "Utah",
    				"state_abbreviation": "UT"
    			}
    		],
    		"input_index": 0,
    		"zipcodes": [
    			{
    				"alternate_counties": [
    					{
    						"county_fips": "49051",
    						"county_name": "Wasatch",
    						"state": "Utah",
    						"state_abbreviation": "UT"
    					}
    				],
    				"county_fips": "49049",
    				"county_name": "Utah",
    				"default_city": "Provo",
    				"latitude": 40.26549,
    				"longitude": -111.65821,
    				"precision": "Zip5",
    				"state": "Utah",
    				"state_abbreviation": "UT",
    				"zipcode": "84604",
    				"zipcode_type": "S"
    			}
    		]
    	}
    ]

    cập nhật

    Smarty xuất bản các bản cập nhật thường xuyên cho cả gói us-zipcode-api và us-zipcode-data. Các bản phát hành mới được công bố trong kho lưu trữ Changelog mã nguồn mở của chúng tôi

    Docker và Container

    Các ứng dụng được biên dịch với sự phụ thuộc vào

    curl "http://localhost:8080/lookup" --data-binary '[{"zipcode": "84604"}]' | python -m json.tool
    2. Điều này có nghĩa là bất kỳ hình ảnh vùng chứa nào được tạo phải có sẵn tệp nhị phân libc. Trong môi trường sản xuất, các bộ chứa dựa trên các bản phát hành được duy trì chính thức của các hình ảnh cơ sở Debian, Ubuntu, Red Hat và Fedora sẽ hoạt động. Đối với các bộ chứa dựa trên Alpine Linux, bạn sẽ cần cài đặt phần phụ thuộc
    curl "http://localhost:8080/lookup" --data-binary '[{"zipcode": "84604"}]' | python -m json.tool
    2. Mặc dù Alpine Linux thường được sử dụng để giảm đáng kể kích thước của các lớp hình ảnh cơ sở, hãy nhớ rằng máy chủ lưu trữ các lớp này trong bộ đệm để chi phí tải xuống hình ảnh cơ sở chỉ được thanh toán một lần. Các hình ảnh cơ sở chính thức mới nhất của Ubuntu có kích thước khoảng 25 MB

    tự động hóa

    Phần sau đây là tập lệnh mà bạn có thể sử dụng để tải xuống, cài đặt và chạy phiên bản cục bộ của API Mã ZIP Hoa Kỳ. Đó là Bash. Sử dụng nó như một điểm khởi đầu để đặt vị trí của riêng bạn. Số dặm của bạn có thể thay đổi. Không có gì