Skip to content

allansifuna/Flask-RestCountries

Repository files navigation

Codacy Badge Coverage Status Top language Code size GitHub PyPI PyPI - Python Version PyPI - Implementation PyPI - Status

Flask-RestCountries

Flask-RestCountries provides a simple intergration for restcountries.com API with Flask Applications.

Installation

Use the package manager pip to install flask-restcountries.

pip install Flask-RestCountries

Usage

from flask import Flask
from flask_restcountries import CountriesAPI

app = Flask(__name__)


rapi = CountriesAPI(app)

if you are using blueprints

from flask_restcountries import CountriesAPI
rapi = CountriesAPI()

rapi.init_app(app)

Usage in App

@app.route('/get-all')
def get_all_countries():
    """all_countries is a list of Country Objects"""
    all_countries = rapi.get_all()
    return render_template("example.html", all_countries=all_countries)

Other Useful Methods

Get Countries By Calling Code string of a country. E.g. '254'.

countries=rapi.get_countries_by_calling_code("+254")

Get a Country By Alpha code string of a country. E.g. 'ke'.

countries=rapi.get_country_by_country_code("ke")

Get Countries By Capital string of a country. E.g. 'Nairobi'

countries=rapi.get_countries_by_capital("Nairobi")

Get Countries By Currency string of a country. E.g. 'KES'.

countries=rapi.get_countries_by_currency("KES")

Get Countries By Language string of a country. E.g. 'sw'.

countries=rapi.get_countries_by_language("sw")

Get Countries By Name string of a country. E.g. 'Kenya'.

countries=rapi.get_countries_by_name("Kenya")

Get Countries By Region string of a country. E.g. 'Africa'.

countries=rapi.get_countries_by_region("Africa")

Get Countries By Subregion string of a country. E.g. 'Eastern Africa'

countries=rapi.get_countries_by_subregion("Eastern Africa")

Response Filtering

To make the response return only afew selected fields, you can filter the response by passing a list of field to be returned in the filters keyword as a kwarg to the methods above. ie:-

countries=rapi.get_countries_by_calling_code("+254",filters=["name","currencies","capital"])

Attributes that can be passed to the filters keyword

- topLevelDomain
- alpha2Code
- alpha3Code
- currencies
- capital
- callingCodes
- altSpellings
- relevance
- region
- subregion
- translations
- population
- latlng
- demonym
- area
- gini
- timezones
- borders
- nativeName
- name
- numericCode
- languages
- flag
- regionalBlocs
- cioc

Attributes of the Country object returned per each request

- top_level_domain
- alpha2_code
- alpha3_code
- currencies
- capital
- calling_codes
- alt_spellings
- relevance
- region
- subregion
- translations
- population
- latlng
- demonym
- area
- gini
- timezones
- borders
- native_name
- name
- numeric_code
- languages
- flag
- regional_blocs
- cioc

Contributing

Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.

License

MIT