All Projects → endormi → awesome-dj

endormi / awesome-dj

Licence: MIT license
List of reasons why django is awesome for web development & django bootstrap boilerplate

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to awesome-dj

Hitchhiker
a Restful Api test tool
Stars: ✭ 2,175 (+11347.37%)
Mutual labels:  collaboration
Wireflow
Wireflow - user flow chart real-time collaborative tool
Stars: ✭ 2,788 (+14573.68%)
Mutual labels:  collaboration
Slate Collaborative
slatejs collaborative plugin & microservice https://slate-collaborative.herokuapp.com/
Stars: ✭ 236 (+1142.11%)
Mutual labels:  collaboration
Blindpad
Collaborative text editor (like Google Docs or CoderPad) with integrated semi-anonymizing voice chat intended to help reduce bias in technical communication.
Stars: ✭ 191 (+905.26%)
Mutual labels:  collaboration
Zulip
Zulip server and web app—powerful open source team chat
Stars: ✭ 14,815 (+77873.68%)
Mutual labels:  collaboration
Colllect
Your visual bookmark manager
Stars: ✭ 216 (+1036.84%)
Mutual labels:  collaboration
Matterwiki
A simple and beautiful wiki for teams
Stars: ✭ 2,089 (+10894.74%)
Mutual labels:  collaboration
Teleconsole
Command line tool to share your UNIX terminal and forward local TCP ports to people you trust.
Stars: ✭ 2,750 (+14373.68%)
Mutual labels:  collaboration
Swellrt
SwellRT main project. Server, JavaScript and Java clients
Stars: ✭ 205 (+978.95%)
Mutual labels:  collaboration
Zulip Terminal
The official terminal client for Zulip
Stars: ✭ 231 (+1115.79%)
Mutual labels:  collaboration
Plynx
PLynx is a domain agnostic platform for managing reproducible experiments and data-oriented workflows.
Stars: ✭ 192 (+910.53%)
Mutual labels:  collaboration
Bit
A tool for component-driven application development.
Stars: ✭ 14,443 (+75915.79%)
Mutual labels:  collaboration
Construct
This is The Construct
Stars: ✭ 218 (+1047.37%)
Mutual labels:  collaboration
Cattaz
Realtime collaborative tool which can run custom applications in a Wiki page
Stars: ✭ 191 (+905.26%)
Mutual labels:  collaboration
Memory Hole
Memory Hole is a support issue organizer application
Stars: ✭ 246 (+1194.74%)
Mutual labels:  collaboration
Fast Ide
🕺Fast Integrated Development Environment 😻
Stars: ✭ 181 (+852.63%)
Mutual labels:  collaboration
Peer Base
Build real-time collaborative DApps on top of IPFS
Stars: ✭ 208 (+994.74%)
Mutual labels:  collaboration
pouchrobot
An AI robot to collaborate in any open source project on GitHub
Stars: ✭ 39 (+105.26%)
Mutual labels:  collaboration
Papernic
Open Source Document Management & Collaboration System
Stars: ✭ 247 (+1200%)
Mutual labels:  collaboration
Server
☁️ Nextcloud server, a safe home for all your data
Stars: ✭ 17,723 (+93178.95%)
Mutual labels:  collaboration

django

This repository is specifically meant to those who are looking into using Django, since this gives a good amount of information about Django and it's capabilities.

Disclaimer: I have also included a bootstrap boilerplate for this project.

Since newer versions of Python are often faster, have more features, and are better supported, the latest version of Python 3 is recommended.

Table of contents:

What is Django 🐍

Django is a high-level Python web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.

To give you an idea what the capabilities of Django are, here is a list of big companies that use Django:

Django's Architecture

django

Building web applications

Django has adopted Python’s "batteries included" approach, the framework has everything necessary to create a fully developed application without needing to install any packages. You can start building a simple application instantly without needing to customize it since all of the essentials are already available.

Django's structure mainly consists of:

  1. The Model Layer
  2. The Views Layer
  3. The Template Layer
  4. The Development Process
  5. Security
  6. The Admin
  7. Forms

Scalability

Django, at it's core is just a series of components of Python, wired up and ready to go. Components are not dependent on each other, since they are separate entities. You can choose, pick, unplug and replace them when your app requires for that to be done. Meaning you can build up to whatever level of performance you need, without compromising the functionality of your app.

Validation

Django follows the DRY principle. You have a Model and it has some fields with restrictions and rules e.g. integer field, string field with length constraint etc. You are going to take input from the users and want to save it in the Model and therefore need to validate the user inputs. You don’t have to write same fields and rules again. You just need to create a ModelForm class and it’ll use the field and rules from the Model class.

Security 🔒

By default, Django prevents most common security mistakes:

  • XSS (cross-site scripting) protection - Django template system by default escapes variables, unless they are explicitly marked as safe.

  • CSRF (cross site request forgery) protection - Django has built-in protection against most types of CSRF attacks, providing you have enabled and used it where appropriate.

  • SQL injection protection - Django uses built-in ORM, thus there is no risk of SQL injection (raw queries are possible, but by no means something that a beginner would need to use).

  • PBKDF2 password hashing - Django uses the PBKDF2 algorithm with a SHA256 hash, a password stretching mechanism recommended by NIST. It’s quite secure, requiring massive amounts of computing time to break. Depending on your requirements, you may choose a different algorithm, or even use a custom algorithm to match your specific security situation.

More on django security.

Packages 📦

If you happen to need more than Django offers, searching for "django" on PyPI finds lots of available for use.

A list of awesome Django packages (not in a specific order):

Documentation 📑

Django’s official documentation is more than enough. On top of that, Stack Overflow is well-stocked with questions & answers related to Django.

Open Source Community 🗃

Being open source and insanely popular, Django has created a helpful community.

Django has created a lot of libraries of its own, but not any for testing. It doesn’t mean that Django doesn’t support testing, it most certainly does. They have a complete section dedicated to testing. Python itself provides a great testing library for Django, so it wouldn't be very practical to develop a testing library.

Installing Django 🌩

  1. Install pip. The easiest is to use the standalone pip installer.

  2. Take a look at virtualenv and virtualenvwrapper. These tools provide isolated Python environments, which are more practical than installing packages systemwide.

  3. After you’ve created and activated a virtual environment (you do not need a virtual environment, but it is highly suggested).

Enter the command:

pip install django

You can also download it from GitHub directly

git clone https://github.com/django/django.git

Articles

Thanks

Thanks to these awesome contributors for helping with this repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].