Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use less css with django?

I'm using twitter bootstrap and django. I've got my dependencies handled with a pip requirements file.

I've got 2 questions:

  1. How can I use less while I'm developing so it'll get compiled when I edit one of my less files?
  2. How can I create some kind of build script that will compress and combine my JS and generate CSS from Less as part of a deployment?

I've written a custom build script that creates a virtualenv, runs 'pip install -r requirements.txt', django syncdb, django migrate and then off we go.

What's the easiest way of integrating less into this?

Thanks

like image 917
user1037541 Avatar asked Jan 04 '12 12:01

user1037541


People also ask

Is CSS used in Django?

Aside from the HTML generated by the server, web applications generally need to serve additional files — such as images, JavaScript, or CSS — necessary to render the complete web page. In Django, we refer to these files as “static files”.

Can you use Django with HTML and CSS?

Django would be used to match urls with pages. Specifically you would need to create a view that renders a template (here comes the html) and some static files (css, js). If you wont use a database i would suggest that you use flask which does the thing is described above much more easily.

Can you use HTML with Django?

You can use the Django templates in HTML (full or partial), text, XML, JSON, or nearly any other text-based format.


2 Answers

  1. Install django-static-precompiler:

    1. Run pip install django-static-precompiler
    2. Add static_precompiler to INSTALLED_APPS
  2. Install lessc executable, either via your package manager or run npm install less (npm is node package manager, which should be distro-installable, use at last resort)

  3. Use less in templates:

    1. Load the template tag: {% load less %}
    2. Use less template tag: <link rel="stylesheet" href="{{ STATIC_URL}}{% less "path/to/styles.less" %}" />

Note that by default compiled files are saved into COMPILED folder under your STATIC_ROOT (or MEDIA_ROOT if you have no STATIC_ROOT in your settings). You can change this folder name with STATIC_PRECOMPILER_OUTPUT_DIR setting. See the documentation for further details.

I didn't try it personally but i know that django-compressor also supports less.

like image 141
jpic Avatar answered Oct 04 '22 04:10

jpic


The selected answer is now out of date: django-less is no longer being maintained (as specified on its pypi page), and the developer suggests using django-static-precompiler instead.

like image 37
brianmearns Avatar answered Oct 04 '22 06:10

brianmearns