input: Write a python function to manage a blog with Flask including creating, retrieving, and updating posts.
  assert create_post({"title": "Post 1", "content": "Content 1"})=={"title": "Post 1", "content": "Content 1"}
  assert create_post({"title": "Post 2", "content": "Content 2"})=={"title": "Post 2", "content": "Content 2"}
  assert get_post("Post 1")=={"title": "Post 1", "content": "Content 1"}
  assert get_post("Nonexistent") == {'message': 'Post not found!'}
  assert update_post("Post 1", {"title": "Updated Post 1", "content": "Updated Content 1"})=={"title": "Updated Post 1", "content": "Updated Content 1"}
  assert update_post("Nonexistent", {"title": "Updated Post", "content": "Updated Content"}) == {'message': 'Post not found!'}
output: from flask import Flask, request, jsonify
  
  app = Flask(__name__)
  posts = {}
  
  def create_post(post_data):
      title = post_data.get("title")
      if title in posts:
          return {'message': 'Post already exists!'}
      posts[title] = post_data
      return post_data
  
  def get_post(title):
      if title in posts:
          return posts[title]
      else:
          return {'message': 'Post not found!'}
  
  def update_post(title, post_data):
      if title in posts:
          posts[title] = post_data
          return post_data
      else:
          return {'message': 'Post not found!'}
  
  @app.route('/post', methods=['POST'])
  def create_post_route():
      post_data = request.json
      return jsonify(create_post(post_data))
  
  @app.route('/post/<string:title>', methods=['GET'])
  def get_post_route(title):
      return jsonify(get_post(title))
  
  @app.route('/post/<string:title>', methods=['PUT'])
  def update_post_route(title):
      post_data = request.json
      return jsonify(update_post(title, post_data))
  
  if __name__ == '__main__':
      app.run(debug=True)