input: 
  def create_blog_post_api():
      """Create a basic CRUD API for the BlogPost model with Python/Flask. The API should include endpoints for creating a post, getting all posts, getting a single post, editing a post, and deleting a post.
      >>> app = create_blog_post_api()
      >>> app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test_api.db'  # Example configuration
      >>> from flask_sqlalchemy import SQLAlchemy
      >>> db = SQLAlchemy(app)
      >>> db.create_all()
      >>> from flask_testing import TestCase
      >>> class TestBlogPostAPI(TestCase):
      ...     def create_app(self):
      ...         app.config['TESTING'] = True
      ...         return app
      ...     def test_create_post(self):
      ...         response = self.client.post('/post', json={'title': 'Test Post', 'content': 'Test Content'})
      ...         self.assertEqual(response.status_code, 200)
      ...         self.assertIsNotNone(response.json['id'])
      ...     def test_get_posts(self):
      ...         response = self.client.get('/posts')
      ...         self.assertEqual(response.status_code, 200)
      ...         self.assertIsInstance(response.json, list)
      ...     def test_get_post(self):
      ...         post_id = self.client.post('/post', json={'title': 'Single Post', 'content': 'Single Content'}).json['id']
      ...         response = self.client.get(f'/post/{post_id}')
      ...         self.assertEqual(response.status_code, 200)
      ...         self.assertEqual(response.json['title'], 'Single Post')
      ...     def test_edit_post(self):
      ...         post_id = self.client.post('/post', json={'title': 'Edit Post', 'content': 'Edit Content'}).json['id']
      ...         response = self.client.put(f'/post/{post_id}', json={'title': 'Edited Post', 'content': 'Edited Content'})
      ...         self.assertEqual(response.status_code, 200)
      ...         self.assertEqual(response.json['title'], 'Edited Post')
      ...     def test_delete_post(self):
      ...         post_id = self.client.post('/post', json={'title': 'Delete Post', 'content': 'Delete Content'}).json['id']
      ...         response = self.client.delete(f'/post/{post_id}')
      ...         self.assertEqual(response.status_code, 200)
      ...         self.assertEqual(response.json['message'], 'Post deleted')
      >>> TestBlogPostAPI().test_create_post()
      >>> TestBlogPostAPI().test_get_posts()
      >>> TestBlogPostAPI().test_get_post()
      >>> TestBlogPostAPI().test_edit_post()
      >>> TestBlogPostAPI().test_delete_post()
      """
  
output:     
      from flask import Flask, request, jsonify
      from flask_sqlalchemy import SQLAlchemy
  
      app = Flask(__name__)
      db = SQLAlchemy(app)
  
      class BlogPost(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          title = db.Column(db.String(100), nullable=False)
          content = db.Column(db.Text, nullable=False)
  
      @app.route('/post', methods=['POST'])
      def create_post():
          data = request.json
          new_post = BlogPost(title=data['title'], content=data['content'])
          db.session.add(new_post)
          db.session.commit()
          return jsonify({'id': new_post.id}), 200
  
      @app.route('/posts', methods=['GET'])
      def get_posts():
          posts = BlogPost.query.all()
          return jsonify([{'id': post.id, 'title': post.title, 'content': post.content} for post in posts]), 200
  
      @app.route('/post/<int:post_id>', methods=['GET'])
      def get_post(post_id):
          post = BlogPost.query.get(post_id)
          if post:
              return jsonify({'id': post.id, 'title': post.title, 'content': post.content}), 200
          return jsonify({'message': 'Post not found'}), 404
  
      @app.route('/post/<int:post_id>', methods=['PUT'])
      def edit_post(post_id):
          post = BlogPost.query.get(post_id)
          if post:
              data = request.json
              post.title = data['title']
              post.content = data['content']
              db.session.commit()
              return jsonify({'id': post.id, 'title': post.title, 'content': post.content}), 200
          return jsonify({'message': 'Post not found'}), 404
  
      @app.route('/post/<int:post_id>', methods=['DELETE'])
      def delete_post(post_id):
          post = BlogPost.query.get(post_id)
          if post:
              db.session.delete(post)
              db.session.commit()
              return jsonify({'message': 'Post deleted'}), 200
          return jsonify({'message': 'Post not found'}), 404
  
      return app
  