-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Minimal weather API with retrieve all and retrieve by city/state
- Loading branch information
1 parent
4c92185
commit 2a7efd4
Showing
650 changed files
with
103,497 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
{ | ||
"python.formatting.provider": "black" | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,2 +1,9 @@ | ||
# secure-python-flask-api | ||
Creating a minimal api for secure login using Python Flask | ||
|
||
|
||
To Run: | ||
``` | ||
source env/bin/activate | ||
python api.py | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,48 @@ | ||
import flask | ||
from flask import request, jsonify | ||
|
||
app = flask.Flask(__name__) | ||
app.config["DEBUG"] = True | ||
|
||
# https://programminghistorian.org/en/lessons/creating-apis-with-python-and-flask | ||
# Add weather data for our catalog | ||
weather = [ | ||
{"city": "Denver", "state": "Colorado", "date": "03/27/2021", "temperature": 58}, | ||
{"city": "Denver", "state": "Colorado", "date": "03/28/2021", "temperature": 67}, | ||
{"city": "Golden", "state": "Colorado", "date": "03/27/2021", "temperature": 46}, | ||
{"city": "Golden", "state": "Colorado", "date": "03/28/2021", "temperature": 63}, | ||
] | ||
|
||
|
||
@app.route("/", methods=["GET"]) | ||
def home(): | ||
return "<h1>Phillip's Home Page</h1>" | ||
|
||
|
||
@app.route("/api/v1/resources/weather/all", methods=["GET"]) | ||
def api_all(): | ||
return jsonify(weather) | ||
|
||
|
||
@app.route("/api/v1/resources/weather", methods=["GET"]) | ||
def api_id(): | ||
# Retrieves all temperatures for city/state | ||
|
||
# Check if an ID was provided as part of the URL. | ||
# If ID is provided, assign it to a variable. | ||
# If no ID is provided, display an error in the browser. | ||
if "city" in request.args and "state" in request.args: | ||
city = request.args["city"] | ||
state = request.args["state"] | ||
else: | ||
return "Error: no city/state provided. Please specify city/state" | ||
|
||
results = [] | ||
for row in weather: | ||
if row["city"] == city and row["state"] == state: | ||
results.append(row) | ||
|
||
return jsonify(results) | ||
|
||
|
||
app.run() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
# This file must be used with "source bin/activate" *from bash* | ||
# you cannot run it directly | ||
|
||
deactivate () { | ||
# reset old environment variables | ||
if [ -n "${_OLD_VIRTUAL_PATH:-}" ] ; then | ||
PATH="${_OLD_VIRTUAL_PATH:-}" | ||
export PATH | ||
unset _OLD_VIRTUAL_PATH | ||
fi | ||
if [ -n "${_OLD_VIRTUAL_PYTHONHOME:-}" ] ; then | ||
PYTHONHOME="${_OLD_VIRTUAL_PYTHONHOME:-}" | ||
export PYTHONHOME | ||
unset _OLD_VIRTUAL_PYTHONHOME | ||
fi | ||
|
||
# This should detect bash and zsh, which have a hash command that must | ||
# be called to get it to forget past commands. Without forgetting | ||
# past commands the $PATH changes we made may not be respected | ||
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then | ||
hash -r | ||
fi | ||
|
||
if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then | ||
PS1="${_OLD_VIRTUAL_PS1:-}" | ||
export PS1 | ||
unset _OLD_VIRTUAL_PS1 | ||
fi | ||
|
||
unset VIRTUAL_ENV | ||
if [ ! "$1" = "nondestructive" ] ; then | ||
# Self destruct! | ||
unset -f deactivate | ||
fi | ||
} | ||
|
||
# unset irrelevant variables | ||
deactivate nondestructive | ||
|
||
VIRTUAL_ENV="/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env" | ||
export VIRTUAL_ENV | ||
|
||
_OLD_VIRTUAL_PATH="$PATH" | ||
PATH="$VIRTUAL_ENV/bin:$PATH" | ||
export PATH | ||
|
||
# unset PYTHONHOME if set | ||
# this will fail if PYTHONHOME is set to the empty string (which is bad anyway) | ||
# could use `if (set -u; : $PYTHONHOME) ;` in bash | ||
if [ -n "${PYTHONHOME:-}" ] ; then | ||
_OLD_VIRTUAL_PYTHONHOME="${PYTHONHOME:-}" | ||
unset PYTHONHOME | ||
fi | ||
|
||
if [ -z "${VIRTUAL_ENV_DISABLE_PROMPT:-}" ] ; then | ||
_OLD_VIRTUAL_PS1="${PS1:-}" | ||
if [ "x(env) " != x ] ; then | ||
PS1="(env) ${PS1:-}" | ||
else | ||
if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then | ||
# special case for Aspen magic directories | ||
# see http://www.zetadev.com/software/aspen/ | ||
PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" | ||
else | ||
PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" | ||
fi | ||
fi | ||
export PS1 | ||
fi | ||
|
||
# This should detect bash and zsh, which have a hash command that must | ||
# be called to get it to forget past commands. Without forgetting | ||
# past commands the $PATH changes we made may not be respected | ||
if [ -n "${BASH:-}" -o -n "${ZSH_VERSION:-}" ] ; then | ||
hash -r | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
# This file must be used with "source bin/activate.csh" *from csh*. | ||
# You cannot run it directly. | ||
# Created by Davide Di Blasi <[email protected]>. | ||
# Ported to Python 3.3 venv by Andrew Svetlov <[email protected]> | ||
|
||
alias deactivate 'test $?_OLD_VIRTUAL_PATH != 0 && setenv PATH "$_OLD_VIRTUAL_PATH" && unset _OLD_VIRTUAL_PATH; rehash; test $?_OLD_VIRTUAL_PROMPT != 0 && set prompt="$_OLD_VIRTUAL_PROMPT" && unset _OLD_VIRTUAL_PROMPT; unsetenv VIRTUAL_ENV; test "\!:*" != "nondestructive" && unalias deactivate' | ||
|
||
# Unset irrelevant variables. | ||
deactivate nondestructive | ||
|
||
setenv VIRTUAL_ENV "/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env" | ||
|
||
set _OLD_VIRTUAL_PATH="$PATH" | ||
setenv PATH "$VIRTUAL_ENV/bin:$PATH" | ||
|
||
|
||
set _OLD_VIRTUAL_PROMPT="$prompt" | ||
|
||
if (! "$?VIRTUAL_ENV_DISABLE_PROMPT") then | ||
if ("env" != "") then | ||
set env_name = "env" | ||
else | ||
if (`basename "VIRTUAL_ENV"` == "__") then | ||
# special case for Aspen magic directories | ||
# see http://www.zetadev.com/software/aspen/ | ||
set env_name = `basename \`dirname "$VIRTUAL_ENV"\`` | ||
else | ||
set env_name = `basename "$VIRTUAL_ENV"` | ||
endif | ||
endif | ||
set prompt = "[$env_name] $prompt" | ||
unset env_name | ||
endif | ||
|
||
alias pydoc python -m pydoc | ||
|
||
rehash |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,75 @@ | ||
# This file must be used with ". bin/activate.fish" *from fish* (http://fishshell.org) | ||
# you cannot run it directly | ||
|
||
function deactivate -d "Exit virtualenv and return to normal shell environment" | ||
# reset old environment variables | ||
if test -n "$_OLD_VIRTUAL_PATH" | ||
set -gx PATH $_OLD_VIRTUAL_PATH | ||
set -e _OLD_VIRTUAL_PATH | ||
end | ||
if test -n "$_OLD_VIRTUAL_PYTHONHOME" | ||
set -gx PYTHONHOME $_OLD_VIRTUAL_PYTHONHOME | ||
set -e _OLD_VIRTUAL_PYTHONHOME | ||
end | ||
|
||
if test -n "$_OLD_FISH_PROMPT_OVERRIDE" | ||
functions -e fish_prompt | ||
set -e _OLD_FISH_PROMPT_OVERRIDE | ||
functions -c _old_fish_prompt fish_prompt | ||
functions -e _old_fish_prompt | ||
end | ||
|
||
set -e VIRTUAL_ENV | ||
if test "$argv[1]" != "nondestructive" | ||
# Self destruct! | ||
functions -e deactivate | ||
end | ||
end | ||
|
||
# unset irrelevant variables | ||
deactivate nondestructive | ||
|
||
set -gx VIRTUAL_ENV "/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env" | ||
|
||
set -gx _OLD_VIRTUAL_PATH $PATH | ||
set -gx PATH "$VIRTUAL_ENV/bin" $PATH | ||
|
||
# unset PYTHONHOME if set | ||
if set -q PYTHONHOME | ||
set -gx _OLD_VIRTUAL_PYTHONHOME $PYTHONHOME | ||
set -e PYTHONHOME | ||
end | ||
|
||
if test -z "$VIRTUAL_ENV_DISABLE_PROMPT" | ||
# fish uses a function instead of an env var to generate the prompt. | ||
|
||
# save the current fish_prompt function as the function _old_fish_prompt | ||
functions -c fish_prompt _old_fish_prompt | ||
|
||
# with the original prompt function renamed, we can override with our own. | ||
function fish_prompt | ||
# Save the return status of the last command | ||
set -l old_status $status | ||
|
||
# Prompt override? | ||
if test -n "(env) " | ||
printf "%s%s" "(env) " (set_color normal) | ||
else | ||
# ...Otherwise, prepend env | ||
set -l _checkbase (basename "$VIRTUAL_ENV") | ||
if test $_checkbase = "__" | ||
# special case for Aspen magic directories | ||
# see http://www.zetadev.com/software/aspen/ | ||
printf "%s[%s]%s " (set_color -b blue white) (basename (dirname "$VIRTUAL_ENV")) (set_color normal) | ||
else | ||
printf "%s(%s)%s" (set_color -b blue white) (basename "$VIRTUAL_ENV") (set_color normal) | ||
end | ||
end | ||
|
||
# Restore the return status of the previous command. | ||
echo "exit $old_status" | . | ||
_old_fish_prompt | ||
end | ||
|
||
set -gx _OLD_FISH_PROMPT_OVERRIDE "$VIRTUAL_ENV" | ||
end |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env/bin/python3 | ||
|
||
# -*- coding: utf-8 -*- | ||
import re | ||
import sys | ||
|
||
from setuptools.command.easy_install import main | ||
|
||
if __name__ == '__main__': | ||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env/bin/python3 | ||
|
||
# -*- coding: utf-8 -*- | ||
import re | ||
import sys | ||
|
||
from setuptools.command.easy_install import main | ||
|
||
if __name__ == '__main__': | ||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env/bin/python3 | ||
|
||
# -*- coding: utf-8 -*- | ||
import re | ||
import sys | ||
|
||
from flask.cli import main | ||
|
||
if __name__ == '__main__': | ||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env/bin/python3 | ||
|
||
# -*- coding: utf-8 -*- | ||
import re | ||
import sys | ||
|
||
from pip import main | ||
|
||
if __name__ == '__main__': | ||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env/bin/python3 | ||
|
||
# -*- coding: utf-8 -*- | ||
import re | ||
import sys | ||
|
||
from pip import main | ||
|
||
if __name__ == '__main__': | ||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
#!/home/phillip/Documents/Personal_Projects/secure-python-flask-api/env/bin/python3 | ||
|
||
# -*- coding: utf-8 -*- | ||
import re | ||
import sys | ||
|
||
from pip import main | ||
|
||
if __name__ == '__main__': | ||
sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) | ||
sys.exit(main()) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
python3 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
/usr/bin/python3 |
1 change: 1 addition & 0 deletions
1
env/lib/python3.6/site-packages/Flask-1.1.2.dist-info/INSTALLER
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1 @@ | ||
pip |
28 changes: 28 additions & 0 deletions
28
env/lib/python3.6/site-packages/Flask-1.1.2.dist-info/LICENSE.rst
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
Copyright 2010 Pallets | ||
|
||
Redistribution and use in source and binary forms, with or without | ||
modification, are permitted provided that the following conditions are | ||
met: | ||
|
||
1. Redistributions of source code must retain the above copyright | ||
notice, this list of conditions and the following disclaimer. | ||
|
||
2. Redistributions in binary form must reproduce the above copyright | ||
notice, this list of conditions and the following disclaimer in the | ||
documentation and/or other materials provided with the distribution. | ||
|
||
3. Neither the name of the copyright holder nor the names of its | ||
contributors may be used to endorse or promote products derived from | ||
this software without specific prior written permission. | ||
|
||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | ||
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | ||
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A | ||
PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT | ||
HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, | ||
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED | ||
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | ||
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | ||
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | ||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | ||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
Oops, something went wrong.