############################ Using mdgen in your projects ############################ Initially this project was conceived since I needed to populate my `django `_ models with fake data. Here's implementation using both django and `flask `_. Implementation in django ======================== We will create a `management command `_ which will let us create a model instance using :code:`python manage.py createdata` and insert fake markdown data into it. **my_app/models.py** .. code-block:: python from django.db import models class MarkdownPost(models.Model): text = models.TextField() created_on = models.DateTimeField(auto_add_now=True) **my_app/management/createdata.py** .. code-block:: python from django.core.management.base import BaseCommand from my_app.models import MarkdownPost from mdgen import MarkdownPostProvider fake = Faker() fake.add_provider(MarkdownPostProvider) class Command(BaseCommand): def handle(self, *args, **options): MarkdownPost.objects.create( text = fake.post() ) You can then invoke this command using :code:`python manage.py createdata`. Implementation in flask ======================= **in app.py** .. code-block:: python from flask import Flask from mdgen import MarkdownPostProvider from faker import Faker import markdown.extensions.fenced_code from flask import Flask from flask_sqlalchemy import SQLAlchemy app = Flask(__name__) app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:////tmp/test.db' db = SQLAlchemy(app) class Post(db.Model): id = db.Column(db.Integer, primary_key=True) title = db.Column(db.String(80), nullable=False) body = db.Column(db.Text, nullable=False) pub_date = db.Column(db.DateTime, nullable=False, default=datetime.utcnow) @app.route('/') def index(): fake = Faker() fake.add_provider(MarkdownPostProvider) text = fake.post() marked_down_text = markdown.markdown(text, extensions=["fenced_code"]) p = Post(title=marked_down_text) return p if __name__ == '__main__': app.run()