Introduction:
Welcome to the exciting world of web development with Flask! If you're just starting out on your journey to master Flask, you've come to the right place. In this guide, we'll walk through the process of building a simple RESTful API using Flask, a lightweight and powerful web framework for Python.
Prerequisites:
Before we dive into coding, make sure you have Python installed on your machine. You can install Flask using pip:
pip install Flask
Setting up your project:
Let's create a new directory for our project and set up a virtual environment. This helps keep your project dependencies isolated.
mkdir flask-api
cd flask-api
python -m venv venv
Activate the virtual environment:
- On Windows:
venv\Scripts\activate
- On Unix or MacOS:
source venv/bin/activate
Now, let's create a simple Flask app. Create a file named app.py
and add the following code:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!'
if __name__ == '__main__':
app.run(debug=True)
Run your app:
python app.py
You should see your Flask app running at http://127.0.0.1:5000/
. Open this URL in your browser, and you should see the "Hello, World!" message.
Building a RESTful API:
Now, let's turn our simple app into a RESTful API. We'll create endpoints for basic CRUD operations (Create, Read, Update, Delete).
-
Creating Resources:
Let's create an endpoint to handle the creation of a resource. Update your
app.py
file:
from flask import Flask, request, jsonify
app = Flask(__name__)
@app.route('/api/resource', methods=['POST'])
def create_resource():
data = request.get_json()
# Perform validation and save resource to the database
# For now, let's just echo the data
return jsonify(data), 201
if __name__ == '__main__':
app.run(debug=True)
Test the endpoint using a tool like Postman or curl:
curl -X POST -H "Content-Type: application/json" -d '{"name": "New Resource"}' http://127.0.0.1:5000/api/resource
- Reading Resources: Let's add an endpoint to retrieve the created resource:
@app.route('/api/resource/<int:resource_id>', methods=['GET'])
def get_resource(resource_id):
# Fetch resource from the database based on resource_id
# For now, let's just return a dummy response
return jsonify({'id': resource_id, 'name': 'New Resource'}), 200
Test the endpoint:
curl http://127.0.0.1:5000/api/resource/1
Conclusion:
Congratulations! You've built a simple RESTful API with Flask. This is just the beginning—Flask offers a wide range of features to explore, such as request handling, authentication, and database integration.
Top comments (0)