
Welcome!
Everything is fine.
flask2/country_db.py
¶
'''A tiny in-memory database (in two different formats) for use in CS
304 examples.
Fall 2024
Scott D. Anderson
'''
country_tuples = [
# dummy row in element zero
(0, 'country', 'capital', 'continent'),
(1, 'France', 'Paris', 'Europe'),
(2, 'Germany', 'Berlin', 'Europe'),
(3, 'Italy', 'Rome', 'Europe'),
(4, 'China', 'Beijing', 'Asia'),
(5, 'India', 'New Dehli', 'Asia'),
(6, 'Japan', 'Tokyo', 'Asia'),
(7, 'United States', 'Washingon, DC', 'North America'),
(8, 'Canada', 'Montreal', 'North America'),
(9, 'Mexico', 'Mexico City', 'North America'),
(10, 'Ghana', 'Accra', 'Africa'),
(11, 'Nigeria', 'Abuja', 'Africa'),
(12, 'Kenya', 'Nairobi', 'Africa'),
(13, 'Brazil', 'Brasília', 'South America'),
(14, 'Chile', 'Santiago', 'South America'),
(15, 'Argentina', 'Buenos Aires', 'South America'),
]
country_dicts = [
dict(cid=cid, name=name, capital=capital, continent=continent)
for (cid,name,capital,continent) in country_tuples
]
def country_lookup_by_name_tuple(cname):
'''Returns a country's data, looking it up by name in the list of
tuples. Returns None if not found.'''
for ct in country_tuples:
if ct[1] == cname:
return ct
# the following is not necessary, but it's nice to be clear
return None
def country_lookup_by_name_dicts(cname):
'''Returns a country's data, looking it up by name in the list of
tuples. Returns None if not found.'''
for cd in country_dicts:
if cd['name'] == cname:
return cd
# the following is not necessary, but it's nice to be clear
return None
def insert_country(cname, capital, continent):
c = country_lookup_by_name_tuple(cname)
if c is not None:
raise Exception(f'country {cname} is already in the database')
cid = len(country_tuples)
country_tuples.append((cid, cname, capital, continent))
country_dicts.append(dict(cid=cid,
name=cname,
capital=capital,
continent=continent))