Git Product home page Git Product logo

endormi / awesome-dj Goto Github PK

View Code? Open in Web Editor NEW
24.0 3.0 5.0 460 KB

List of reasons why django is awesome for web development & django bootstrap boilerplate

Home Page: https://awesome-dj.xyz

License: MIT License

Python 99.75% CSS 0.21% JavaScript 0.04%
hacktoberfest django first-pull-request-and-commit open-source collaboration django-boilerplate django-bootstrap4 python pull-request awesome

awesome-dj's Introduction

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.

awesome-dj's People

Contributors

anuj-devrani avatar bluszcz avatar endormi avatar fofam3 avatar imgbot[bot] avatar imgbotapp avatar louisparis avatar wangonya avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

awesome-dj's Issues

Deprecated django docs (2.1) links

Describe the bug
Pretty much all of the links (if not all) to django docs are deprecated and using v. 2.1.

Expected behavior
Use Django v. 3.0 docs.

Test automation

Describe the bug
Kanban board

Expected behavior
A clear and concise description of what you expected to happen.

Looking for new contributors to contribute

This repository is beginner friendly, keep in mind that you do not need Django to work with this.

Specifically meant for people who are looking into using Django, since this gives great amount of information about Django and it's capabilities.

Add MySQL example

Is your feature request related to a problem? Please describe.
Nope

Describe the solution you'd like
I added PostgreSQL example. so MySQL example should be added.

Add Oracle example

Is your feature request related to a problem? Please describe.
Nope

Describe the solution you'd like
I added PostgreSQL example. so Oracle example should be added.

Add MariaDB example

Is your feature request related to a problem? Please describe.
Nope

Describe the solution you'd like
I added PostgreSQL example. so MariaDB example should be added.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.