Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

History

2 Commits

Repository files navigation

Flask Backend

Code for Flask backend done at the workshop held on Feb 5, 2017.

Covers basic requests, querying from file and database.

Folder structure

  • app
    • __init__.py
    • data
      • univ.db
      • people.json
    • api.py
  • app.json
  • Procfile
  • requirements.txt
  • run.py
  • runtime.txt

run.py

#!usr/bin/pythonfromappimportappapp.run(debug=True)

app/__init__.py

fromflaskimportFlask# import Flaskapp=Flask(__name__) # Our app is an instance of Flaskfromappimportapi# Import API here, more files can be imported here

app/api.py

  • Imports

    fromappimportappfromflaskimportjsonify, requestimportjsonimporttimeimportsqlite3
  • Data fromatter

    # Returns standard JSON formatted object with data, message and response code.defdataFormatter(code, message, data):
    resp=jsonify({
    'code': code,
    'message': message,
    'data': data
    })
    resp.status_code=codereturnresp
  • Routes without database

    • Example route

      # Returns the square of a passed number# Example, @app.route('/number/<num>', methods=['GET'])

def square_method(num): try: sq = int(num) * int(num) ret = "Square of " + num + " is " + str(sq) + "." return dataFormatter(200, "Success.", ret) except: ret = "Error: Pass a number." return dataFormatter(400, "Bad request.", ret) ```

- For particulars
```python
@app.route('/<name>', methods=['GET', 'PUT', 'DELETE'])
def personParticular(name):
# http://localhost:5000/The%20Doctor
# cause I'm too lazy to edit the json for numeric keys :P
# put
if request.method == 'PUT':
ptodelete = {}
for person in data:
if person['name'] == name:
ptodelete = person
if ptodelete in data:
data.remove(ptodelete)
ptoins = json.loads(request.form.get('data', ''))
data.append(ptoins)
saveFile()
return dataFormatter(200, "Put successful", ptoins)
# delete
if request.method == 'DELETE':
ptodelete = {}
for person in data:
if person['name'] == name:
ptodelete = person
if ptodelete in data:
data.remove(ptodelete)
saveFile()
return dataFormatter(200, "delete successful", data)
return dataFormatter(404, "Not found", [])
# get
if request.method == 'GET':
psearch = {}
for person in data:
if person['name'] == name:
psearch = person
if psearch in data:
return dataFormatter(200, "Person found", psearch)
return dataFormatter(404, "Not found", [])
```

About

Code for Flask API workshop held on Feb 5, 2017.

Resources

Stars

0 stars

Watchers

9 watching

Forks

Releases

Packages

Contributors

Languages