Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think one common misconception is that Django can't be used in place of Flask when you want a minimalist set up. And to be fair, I used to think the same until I read Lightweight Django [0]. Their smallest django project code is just a couple of lines:

    import sys
    from django.conf import settings 
    settings.configure(
        DEBUG=True,
        SECRET_KEY='thisisthesecretkey',
        ROOT_URLCONF=__name__,
        MIDDLEWARE_CLASSES=(
            'django.middleware.common.CommonMiddleware',
            'django.middleware.csrf.CsrfViewMiddleware',
            'django.middleware.clickjacking.XFrameOptionsMiddleware',
            ),
        )
        
    from django.conf.urls import url
    from django.http import HttpResponse


    def index(request):
        return HttpResponse('Hello World')
        

    urlpatterns = (
        url(r'^$', index),
    )

    if __name__ == "__main__":
        from django.core.management import execute_from_command_line

        execute_from_command_line(sys.argv)

Granted, it's not as terse as Flask's hello world example but it's still quite short.

[0] https://www.oreilly.com/library/view/lightweight-django/9781...



I think the comparison is not so much lines of code but conceptual overhead. With Flask you create an app instance and call @app.route() with some Python functions and run the app. Granted it's probably not going to do much, and by the time you build out a real-world application with a SQL database, authentication and so forth you're going to get diminishing returns, but for a beginner who just wants to know "how do I make a web page using Python?" it's great.


How big is the smallest Django project after you add proper authentication (signup, login, pw reset, oauth2, 2FA)? Last I checked it was rather terrible.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: