Giter Club home page Giter Club logo

django-carrots's Introduction

Django Carrots tutorials

Tutorials walking new programmers through the process of building their first website in Python and Django.

Loose outline

  1. Installing Python and setting up development environment
  2. Python basics
  3. "Snakes!" online competition
  4. Creating a polling application in Django
  5. Deploying the application

Build instructions

Just run:

$ pip install -r requirements.txt
$ make html

Documentation should be created in build/html directory.

Print version

For print version you will need XeTeX engine (because PDFLatex doesn't support Unicode, go figure):

$ make latex
$ cd build\latex

# Open workshops.tex and remove '\DeclareCharacter' directive
$ xelatex workshops.tex

Why Python 3?

Because it's the future. Also, Python 3 makes it possible to skip the whole section of the tutorial describing Unicode and character encodings in general. There is no use in scaring newbies from the start.

Contributing

Please do!

Django Carrots guides and related software are free works: you can redistribute them and/or modify them under the terms of the GNU General Public License as published by the Free Software Foundation version 3 with the additional attribution requirements. See LICENSE file at the root of the source directory for details.

django-carrots's People

Contributors

bernardpaulus avatar brouberol avatar geekgirlscarrots avatar gkapkowski avatar karaluszyca avatar kstepniowska avatar kturbo avatar lqc avatar mart-e avatar metamatik avatar mkcor avatar mstepniowski avatar pbetkier avatar qrees avatar sguermond avatar soutys avatar victoriatomzik 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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

django-carrots's Issues

Split tutorial into modules

Proposal:

  1. Python. extend current version with classes, imports, etc.
  2. basic Django: current material, but explained better, no Facebbok
  3. Advanced Django: Forms, file uploads, Django Admin, CSS, Javascript, HTML
  4. Modern Django: APIs, single page apps, Celery, other
  5. Robots: remote control robots with Python
  6. Mobile Apps
  7. Data Science

Main idea is that, each module is separate and does not rely on any other module, although modules with higher number are more advanced so require more experience from student (and mentor).

Original idea description:

S1 - Python
- Wprowadzenie, składnia itp itd
- na koniec -> Choinka najlepiej stopniowana, 1 gwiazdki (prosta), 2 ta co jest teraz, 3 coś trudniejszego.

S2 - Podstawy Django
- Podsumowanie Pythona dla przypomnienia, (jakieś 1-2 strony, przykład z komentarzami w kodzie, tak żeby można było spojrzeć na całość i znaleźć w niej wszystkie części z S1)
- To co jest teraz

S3 - Django rozwinięcie
- Podsumowanie S2
- Django Forms
- File upload
- Rozwinięcie możliwości panelu admina (Nie możemy zapominać że to jest dla początkujących jedno  największych "Wow!" w Django)
- ORM - przykłady w S2 wprowadzają w temat, ale mam wrażenie że nie pokazują prawdziwych możliwości i ograniczeń ORMa, Przykłady z pobieraniem dużej ilości obiektów, zwracanie uwagi na pamięć, wykorzystanie relacji itp.
- JS i CSS

S4 - Django w świetle najnowszych trendów w pisaniu aplikaji webowych
- Podsumowanie S2 i S3
- APIs - Django Rest Framework, Tastypie ipt.
- JS - Single Page Apps Backbone/Angular/inne
- Background jobs - Celery
- Inne? 

i18n contribution instructions

Linked with: #24
Let's update READMEs with some infos:

  • which branch/language is default (a base) for new stuff;
  • how to populate changes to other (language) versions;
  • how to find any missing / not translated parts;

Accessing command Line on Windows

Aby uruchomić linię poleceń Windows, kliknij Start, a następnie Uruchom.... W otwartym oknie wpisz cmd i kliknij OK.

On Windows 7 there is no "Run..." option and on Windows 8 there is no "Start" ;)

Instead one can search for "Command Prompt" or "cmd" (through Start Menu on W7 or W8 omni-search), or use "Win Key"+R shortcut.

Directions for updating Python on Mac

(add all this to install.rst)

OSX does not automatically replace all system links to Python 3.

Instructions can be found here.
The last step is to replace local (which python) with a symbolic link to /usr/bin/python:

sudo rm /usr/local/bin/python
sudo ln -s /usr/bin/python /usr/local/bin/python

The correct version of Python should now be the default when you run python.

"New" style string formatting

In the tutorial we use old C-style formatting with % sign.
I think it is worth to change that part to the "newer" string format method, mainly because it is much more similar to the Django template syntax.

Dictionary type is not mentioned until deep Django part

The first time dict is mentioned is when we pass it to the Context at the very end of the workshops. People who has never seen it before at confused at this part.
Maybe we should try to introduce it earlier, e.g. near the lists?

Command line examples are sometimes confusing

It's not always obvious which part of example is what the user should type by themselves and what is the output.

We should present input and output in different font style or color.

"Uwaga Dla znających inne języki" may be confusing

Currently it may be confusing to people (and I saw example of that:) that this is mentioned in place where people just start playing with language and because of that may think that code:

x = 42
y = x
x += 1
print (y) 

should print 43, because x should represent same object as y. I would move it to some later section, add explanation or remove it?

Make HTML error

When we run

make html

it cause:

sphinx-build -b html -d build/doctrees source build/html
Running Sphinx v1.8.5
loading translations [en_GB]... not available for built-in messages

Extension error:
Could not import extension sphinx.ext.pngmath (exception: No module named pngmath)
make: *** [html] Error 2

Import statements tutorial

Import statements are mentioned first time in the Django part which is also confusing when people see it for the first time.
I think that concept of module and imports should be introduced earlier.

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.