新手帮助 - Python 货币计算器
您好,我是 Python 的新手,一家公司给我发了一个任务来解决它。
应用程序编程任务
任务是实现一个可以检索、存储和公开货币汇率的 API。所有端点都应使用您选择的数据库作为持久层。需要以下端点: - POST - /register(无需验证)此端点应接受 JSON 格式的用户名、密码、confirmPassword。验证输入后,它应该在数据库中创建并持久化用户。 - POST - /login(无需验证)此端点应接受 JSON 格式的用户名和密码。在验证输入并检查用户是否存在且密码正确后,应返回一个 Json Web 令牌 (JWT),该令牌应该
用于与 API 的其他 2 个端点进行通信。 - POST - /seed(需要身份验证)此端点应使用您选择的免费货币 API。 (例如:https://freecurrencyapi.net/)。请记住,您可能需要注册此 API 才能使用它,并遵守潜在的请求速率限制。调用时,它应分别检索以欧元、美元、瑞士法郎和英镑为基础货币的所有货币的汇率。例如{base: EUR, currency: [{ EUR: 1, USD: 0.86, CAD: 1.23, SGD: 2.7 ... }} // Base EUR {base: USD, currency: [{ EUR: 1.23, USD: 1, CAD: 0.67, SGD: 8.2 ... }} // Base USD .... 然后应使用使
感觉。 - GET - /rates/{base}(需要身份验证)此端点应以 JSON 和 XML 格式从数据库返回所有汇率。它应该支持按字母顺序或汇率进行分页和排序。 - GET - /rates/{base}/{target}(需要身份验证)
应该返回特定的汇率。 - POST - /rates/{base}/{target}(需要身份验证)应该创建/更新特定的汇率。为了能够发现、测试和理解 API,请确保它使用 OpenAPISpecification (Swagger),它将自动创建一个 UI 界面,作为 API 文档和测试平台。
我不确定我是否开始正确,我正在尝试很多小时,但我需要你的帮助。
提前致谢
下面是代码:
`打印“内容类型:文本/ html”
打印 ””
导入请求
导入getpass
导入json
导入参数解析
从日期时间导入日期
进口时间
这是一个简短的程序,用于访问 api (freecurrencyapi.net),从 csv 中提取日期的转换
并将输出保存为 json 格式。输入 csv 应该是日期 YYYY-MM-DD 的列表。
该程序将需要一个 api 密钥,可以从 freecurrencyapi.net 获得
示例网址https://freecurrencyapi.net/api/v2/latest?apikeyu003dccc0b100-8a55-11ec-8276-b71d1ddd6a9b
def callAPI(sourcelist, sourcecurrency, destcurrency):
jsonlist u003d []
APIKEYu003dgetpass.getpass(promptu003d"ccc0b100-8a55-11ec-8276-b71d1ddd6a9b (隐藏)")
URLBASEu003d'https://freecurrencyapi.net/dashboard'
源列表中的日期:
url=f'{URLBASE}?access_key={APIKEY}&date={date}¤cies={sourcecurrency},{destcurrency}&format=1c'
convert=requests.get(url)
jsonlist.append(convert.json())
time.sleep(1)
进入全屏模式 退出全屏模式
返回(json列表)
print("汇率通过 'https://freecurrencyapi.net/'")
sourcepathu003d'e:/doug sprogs/汇率/'
jsonfileu003d''
csvfileu003d''
今天 u003d date.today()
来源货币u003d''
目标货币u003d''
源列表 u003d []
jsonlistu003d[]
inputargsu003dargparse.ArgumentParser(descriptionu003d'这是一个打api的小程序\
(/freecurrencyapi.net) ,从 csv 中提取日期的转换\
并将输出保存为 json 格式。 ',
Epilogu003d'输入的 csv 应该是 YYYY-MM-DD 的日期列表。\
该程序将需要一个 api 密钥,可以从 api.currencylayer.com 获得。')
inputargs.add_argument('-c', helpu003d'转换请求,源-目的地,默认澳元-美元')
inputargs.add_argument('-d', helpu003d'date in YYYY-MM-DD , for a single day conversion')
inputargs.add_argument('-l', helpu003d'csv 文件用于输入日期列表,YYYY-MM-DD')
inputargs.add_argument('-j', helpu003d'json文件保存输出')
inputargs.add_argument('-p', helpu003d'输入和输出文件的文件路径')
cliargs u003d inputtargs.parse_args()
货币 u003d cliargs.c
来源日期 u003d cliargs.d
源列表 u003d cliargs.l
如果cliargs.p:
源路径 u003d cliargs
如果 cliargs.j:
jsonfile u003d cliargs.j
如果货币:
sourcecurrency,destcurrency u003d currency.split('-')
别的:
来源货币 u003d 'AUD'
destcurrency u003d '美元'
如果不是 sourcedate 和 sourcelist:
使用 open((sourcepath + sourcelist), 'r' ) 作为源文件:
sourcein u003d sourcefile.read()
sourcelist = sourcein.split()
进入全屏模式 退出全屏模式
elif 来源日期:
源列表 u003d [str(sourcedate)]
别的:
源列表u003d[str(今天)]
print("没有提供 csv 或日期")
print(f"源列表是 {sourcelist}")
print(f"源列表类型是 {type(sourcelist)}")
json 列表 u003d 调用 API(源列表、源货币、目标货币)
如果json文件:
print(f"写入 json 文件 {jsonfile}")
使用 open((sourcepath + jsonfile + '.json'), 'a') 作为文件输出:
对于 json 列表中的元素:
json.dump(元素,文件输出)
打印(元素)
print(f"文件名路径将是 {sourcepath + jsonfile + '.json'}")
别的:
print("没有 json 文件名")
对于 json 列表中的元素:
打印(元素)`
更多推荐

所有评论(0)