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.