input: 
  def create_CRUD_API_for_BlogPost(app):
      """
      Create a basic CRUD API for the BlogPost model using Flask. The API should include endpoints for creating a post, getting all posts, getting a single post, editing a post, and deleting a post.
  
      Example:
      >>> app = Flask(__name__)
      >>> app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///test.db'
      >>> db = SQLAlchemy(app)
      >>> create_CRUD_API_for_BlogPost(app)
      >>> class BlogPost(db.Model):
      ...   id = db.Column(db.Integer, primary_key=True)
      ...   title = db.Column(db.String(200))
      ...   content = db.Column(db.Text)
      ... 
      ...   def serialize(self):
      ...     return {'id': self.id, 'title': self.title, 'content': self.content}
      >>> db.create_all()
      >>> with app.test_client() as client:
      ...     response = client.post('/post', json={'title': 'Test', 'content': 'Test Content'})
      ...     assert response.status_code == 200
      ...     id = response.get_json()
      ...     response = client.get(f'/post/{id}')
      ...     assert response.status_code == 200
      ...     response = client.put(f'/post/{id}', json={'title': 'Updated', 'content': 'Updated Content'})
      ...     assert response.status_code == 200
      ...     response = client.delete(f'/post/{id}')
      ...     assert response.status_code == 200
      """
  
output:     
      from flask import request, jsonify
      from flask_sqlalchemy import SQLAlchemy
  
      db = SQLAlchemy(app)
  
      class BlogPost(db.Model):
          id = db.Column(db.Integer, primary_key=True)
          title = db.Column(db.String(200))
          content = db.Column(db.Text)
  
          def serialize(self):
              return {'id': self.id, 'title': self.title, 'content': self.content}
  
      @app.route('/post', methods=['POST'])
      def create_post():
          data = request.get_json()
          new_post = BlogPost(title=data['title'], content=data['content'])
          db.session.add(new_post)
          db.session.commit()
          return jsonify(new_post.id), 200
  
      @app.route('/post', methods=['GET'])
      def get_all_posts():
          posts = BlogPost.query.all()
          return jsonify([post.serialize() for post in posts]), 200
  
      @app.route('/post/<int:id>', methods=['GET'])
      def get_post(id):
          post = BlogPost.query.get(id)
          if post:
              return jsonify(post.serialize()), 200
          return jsonify({'error': 'Post not found'}), 404
  
      @app.route('/post/<int:id>', methods=['PUT'])
      def update_post(id):
          post = BlogPost.query.get(id)
          if post:
              data = request.get_json()
              post.title = data.get('title', post.title)
              post.content = data.get('content', post.content)
              db.session.commit()
              return jsonify(post.serialize()), 200
          return jsonify({'error': 'Post not found'}), 404
  
      @app.route('/post/<int:id>', methods=['DELETE'])
      def delete_post(id):
          post = BlogPost.query.get(id)
          if post:
              db.session.delete(post)
              db.session.commit()
              return jsonify({'message': 'Post deleted'}), 200
          return jsonify({'error': 'Post not found'}), 404
  