Django vs Frappe

Frappe is a full-stack web framework & is a bit different from the traditional ones like Django or Flask. In this blog, you will get a head-to-head comparison between Django & Frappe. We will then move on to the best use case & challenges of Frappe.

GraphQL has a role beyond API Query Language- being the backbone of application Integration
background Coditation

Django vs Frappe

When we talk about frameworks in Python, Frappe is a bit different from the traditional & popular ones like Django and Flask. Before we bombard you with information & importance about Frappe, let’s look at the head-to-head comparison between Django & Frappe. We will then move on to the best use case of Frappe to make it easy for you to visualize & decide if you want to proceed further.

At Coditation, we have a checklist while choosing any framework. We are sharing one in which we compare the two giant frameworks, Django & Frappe. Let us take a look below:

Django vs Frappe framework - Coditation

Now that you looked at the above comparison, you might be wondering if this is not such a great community & the documentation is inadequate, why should I invest my time learning this?

Let us answer this for you.

What is Frappe

“Frappe, pronounced fra-pay, is a full stack, batteries-included, web framework written in Python and Javascript with MariaDB as the database. It is the framework which is pretty generic and can be used to build database driven apps. In Frappe meta-data is also treated as data. This enables you to build front-ends very easily. It has a full featured Admin UI called the Desk that handles forms, navigation, lists, menus, permissions, file attachment and much more out of the box.”
Source - https://frappeframework.com/

What are the core components of Frappe?

  • DocType - Frappe follows the MVC model. Doctype is similar to the model. In frappe, meta-data is also doctype, so the views can be created easily. Doctype supports various fields like data, links, tables, dates, etc. Based on Doctype, a JSON object is created which helps to define tables in the database.
  • Desk - Desk provides the admin user interface. We can directly create doctypes, perform crud operations, etc. using UI. On creating doctypes list views, form views, etc., are generated automatically based on the metadata of the doctype. Desk can be used by Administrator and users with other roles. Desk also helps to create new users and permission can also be assigned through desk only. Doctype permissions can also be configured, users may have access to read, write, delete, etc the doctype. Models and views can be modified and new functionality can be added with the help of client script and server script.

When to use it

If you want to develop data-driven applications like eCommerce, ERP, etc. without wasting much time and with amazing features built-in:

  • On creating doctypes list views, form views, etc. are generated automatically based on the metadata of the doctype.
  • User roles and user permissions like read write can be applied easily (authorization)
  • Kanban board to take priority items in the queue first are easily handled here
  • Reports can be generated quickly
  • ORM can be easily integrated 
  • Oauth, 2-factor authentication, background job scheduling(Python RQ), caching are available techniques 
  • SMS, email communication, and pdf generation are supported out of the box
  • Payment gateway like Razorpay, google drive can also be integrated without much of a hassle 

What are the challenges?

  1. For Frappe you need to be on a UNIX system, so any Linux Distribution and MacOS are supported. If you are a Windows user then you have to switch to either Linux Distribution or MacOS.
  2. As of now, the community is not that big enough. Learning Frappe Framework can be challenging although the content available on official sites is decent.
  3. Setup can also be challenging due to prerequisites and thus have a steep learning curve.

It’s been one of the most amazing experiences with Frappe and we are looking forward to accepting more challenges we may face here in the future. 

My name is Mohd Aqdus and I am a Python developer for Coditation Systems. I have ~2 years of experience in software development with a bachelor's degree in Computer science. I enjoy using my skills to contribute to the exciting technological advances that happen every day at Coditation.

Want to receive update about our upcoming podcast?

Thanks for joining our newsletter.
Oops! Something went wrong.

Latest Articles

Implementing feature flags for controlled rollouts and experimentation in production

Discover how feature flags can revolutionize your software deployment strategy in this comprehensive guide. Learn to implement everything from basic toggles to sophisticated experimentation platforms with practical code examples in Java, JavaScript, and Node.js. The post covers essential implementation patterns, best practices for flag management, and real-world architectures that have helped companies like Spotify reduce deployment risks by 80%. Whether you're looking to enable controlled rollouts, A/B testing, or zero-downtime migrations, this guide provides the technical foundation you need to build robust feature flagging systems.

time
12
 min read

Implementing incremental data processing using Databricks Delta Lake's change data feed

Discover how to implement efficient incremental data processing with Databricks Delta Lake's Change Data Feed. This comprehensive guide walks through enabling CDF, reading change data, and building robust processing pipelines that only handle modified data. Learn advanced patterns for schema evolution, large data volumes, and exactly-once processing, plus real-world applications including real-time analytics dashboards and data quality monitoring. Perfect for data engineers looking to optimize resource usage and processing time.

time
12
 min read

Implementing custom embeddings in LlamaIndex for domain-specific information retrieval

Discover how to dramatically improve search relevance in specialized domains by implementing custom embeddings in LlamaIndex. This comprehensive guide walks through four practical approaches—from fine-tuning existing models to creating knowledge-enhanced embeddings—with real-world code examples. Learn how domain-specific embeddings can boost precision by 30-45% compared to general-purpose models, as demonstrated in a legal tech case study where search precision jumped from 67% to 89%.

time
15
 min read