Django community: RSS
This page, updated regularly, aggregates Community blog posts from the Django community.
-
Djangocon: Lispisms - Shai Berger
(One of the summaries of a talk at the 2015 Djangocon EU conference). Shai Berger is a member of the django core team. Lispisms? Those are concepts you could import from Lisp into python. Lisp is invented in 1960, it is ancient. (All (your (code (is (full (of (parentheses))))))).. Many important concepts were invented in lisp. Garbage collection, recursion, dynamic typing. So: have we gotten everything that is useful out of Lisp? Or are there still gems hidden that we can use? What about dynamically scoped variables? People have been asking for ages for the request object to be available globally and they always got the same answer: GLOBALS ARE EVIL. Their value changes unpredictably because everybody anywere can modify them. You can get some of the way with thread-locals. But why is it evil? The fact is, it is very convenient. There are other places where we effectively do it, for instance we don't need to pass the database connection object into every query... Is it possible to use globals that behave themselves? Where every change is temporary, only passed down the call chain? A bit like a 'with' statement. This is the default in lisp. You can modify … -
Djangocon: Forms are not static - Markus Holtermann
(One of the summaries of a talk at the 2015 Djangocon EU conference). Markus Holtermann works on the django core team. Forms are basically there for input validation. They're also used for rendering actual web forms. Normally, forms are pretty static. The field are there and they don't change. But sometimes you want for instance request dependent forms. Depending on the request, some fields might be left out or are added. The same way, depending on the permissions of the user, there might be more or fewer values in a dropdown. Markus would say that those forms are still static, because you have to write code to make those kind of changes. He was involved with a website that dealt with different events. Every event needed a form with slightly different fields. With regular static forms, you'd need to create a fresh new form class a couple of times a year. Not nice. He ended up making django-dynamic-forms that could construct forms on the fly. Django itself dynamically creates forms when you use ModelForms. It reads the model and dynamically creates a class. You can do that in python with type(). He does basically the same, but he doesn't read … -
Djangocon: Effortless real time apps in Django - Aaron Bassett
(One of the summaries of a talk at the 2015 Djangocon EU conference). Aaron Bassett says there are two kinds of polling you can do upon http: lots of small requests all the time, hoping that there's something new on the server. And "long polling", where a connection is opened and kept open until the server has something to send back. Once received, a new http request is send out. But... in the core, that's a hack. http isn't designed for that. Now there's websockets. Persistent connections where you can send messages back and forth between server and browser. There is a django package to make real time web easy: swamp dragon. Swamp dragon consists of: Redis. Basically a very quick, persistent kind of memcache. Supports pubsub. Tornado. A python webserver. Non-blocking IO. Lots of connections are no problem. Django. Swamp dragon takes care of all the real time stuff for you. He made a sample TODO django app. Some notes: There's a swamp dragon model mixin that makes sure any changes to the models are send to Redis. You have swamp dragon serializers that tell which data you want to extract from the models. And you can add extra … -
Shanley and my PyCon talk
A few folks have asked about a link between my PyCon talk and Shanley’s writing, specifically her essay 10x Engineer, which you can find in her essay collection, Your Startup Is Broken. Shanley’s writing (and the work she publishes in Model View Culture) has influenced and inspired my thinking about the tech industry in many ways. Shanley’s writings on tech and feminism have informed and inspired me, and have definitely helped shape my thinking. -
Djangocon: On privilege and moral duty - Maik Hoepfel
(One of the summaries of a talk at the 2015 Djangocon EU conference). Maik Hoepfel says we have superpowers. Just a few programmers can write a dating website that arranges thousands of relationships. We can write software that detects earthquake victims in an afternoon. We write software that make traffic lights safe. We are in demand. We are privileged. Very privileged. We don't have a dress code. We have flexible hours. Who else has this? We belong to the "1%". (Note that a commenter afterwards took issue with the 1%: we're very privileged, but we're not making the millions of Euros that would put us in the 1% in our countries.) On the other hand, companies pay hefty sums to get us to work for us. But still we're afraid to ask for things. Negotiating regular work hours instead of having to work 60 hours a week? Time for exercise and good sleep? Time for our families? We have the power to negotiate. Why don't we do that? We could use that extra time and money for other things. Teaching people. Being there for family. Maintaining open source projects. Note also: much of our work has little impact. How much … -
Djangocon: Injecting Django into the work environment - Abdulrahman Alotaibi
(One of the summaries of a talk at the 2015 Djangocon EU conference). Abdulrahman Alotaibi started studying in 2008 and started using linux (the "LAMP" stack). In 2009 he discovered Python and in 2011 he started using django. At the time he debated whether to use django or ruby. A pycon talk by one of the django core developers about "snakes and rubies" swung him over to django. He now lives in Kuwait again and is involved in the open source community there. Almost everything at his company/research center was closed source. The solution was to try to enforce it with a "constitution". Enforcing version control and so. And reproducible builds. But forcing it isn't enough and it doesn't work. So they started giving courses, for instance in using git. And mandating use of virtual machines so that the work environments were more or less the same. This phase was followed by the actual work of collaboratively building several django websites. Sometimes they figured out they needed to change their "constitution" or their tools. Core to the success to go back and forth in the process. First a constitution, then courses, then back to the constitution, then work, then back … -
Djangocon: Pushing the pony’s boundaries - Ola Sitarska
(One of the summaries of a talk at the 2015 Djangocon EU conference). Ola Sitarska absolutely loves the django admin interface. She started out writing elaborate admin interfaces for silly games in PHP. At a certain moment she discovered django and hasn't written a single line of PHP since. She organized djangocon.eu 2013 and djangogirls and she's a core developer and.... she even named one of her cats "django" :-) The django admin is not one of the most beautiful parts of the django code base. It is hard to wrap your head around the code at first, but it is very robust and backwards compatible. In the end it are just a couple of views and urls, though. Three important classes are AdminSite, ModelAdmin and Changelist. Insides of the admin AdminSite: encapsulates one instance of the django admin pages. If you add /admin to your urls.py, you're effectively instantiating an AdminSite. Which means you can do it yourself by hand, too. With a different name and different behaviour. .get_urls() is an important method. It sets up the urls, for instance for login and logout. And it iterates over all registered models, ading urls for them. There's also some basic … -
Djangocon: Cardiff
(One of the summaries of a talk at the 2015 Djangocon EU conference). Conference introduction Some noteworthy items from the introduction: There's a creche! So people with small children also can come. No water bottles. Well, actually, everyone got a aluminium wateter bottle, hand-washed by the conference chair :-) You think I'm typing fast for these summaries? There were two live speach-to-text typists that provided live subtitles on a couple of monitors! Wow. Handy for those with hearing problems and for those whose first language isn't English. Cardiff University wellbeing service The cardiff university's wellbeing service offers help during the conference. For instance with managing stress and other common workplace difficulties. Also advice with physical and emotional wellbeing. Think about the top 5 most important items in your life. If you'd draw it as a pie chart, how much would you allocate for every one of them? Is there for instance a 'work' segment that takes up 70%, drowning out the rest? Wellbeing is linked to increased productivity in work and improved work performance. More than 40% of persons have problems that impact their work productivity! Work intruding on the rest of their lives, for instance. Or a sedentary lifestyle … -
Djangocon: Reaching out, Django in the social sciences - Lucie Daeye
(One of the summaries of a talk at the 2015 Djangocon EU conference). Lucie Daeye is a social scientist that just picked up django last year. But she already organized a django girls paris event and is busy getting a PyLadies Paris started. For her research, she has to keep all sorts of data on restaurants. Addresses, text from interviews, other data. She thought there would be already software for that. Something with automatic address import, perhaps automatic simple maps, easy way to add notes, etcetera. She asked her professor for the name of the software she needed to download and he said "use a spreadsheet". Ouch. No. Back to paper? All kinds of papers in multiple folders? No... She asked other PhDs for what they're using. Basically electronic files in lots of remote folders... She complained to a developer friend who pointed her at Django. She got something simple working with the django admin. A single "Restaurant" model. Now she wanted to have a map. Which meant she actually had to program. She saw that there would be a one-workshop for woman that wanted to learn programming (djangogirls). One one-day workshop and 10 hours of work afterwards and she … -
Djangocon: Baptiste's adventures in Djangoland - Baptiste Mispelon
(One of the summaries of a talk at the 2015 Djangocon EU conference). Baptiste Mispelon spend 2014 roaming around in djangoland. Djangoland? Esperanto is a language invented by Zamenhoff, a polish guy. There's a "Esperantujo" concept: "esperanto-land". Once you meet someone who speaks that invented language, you're in esperanto-land. It is the same with django. Once you meet people who program django or if you're on the IRC channel, you're in djangoland. He told a bit about his history. Dropped out of school in France in 2009 and moved to Hungary towards his girlfriend. After a period of doing nothing, he started making php websites. Afterwards he discovered python. He attended the djangocon in Zürich (2012). His first conference. He stayed for the sprint: this was the best decision of his whole career. He met lots of people and felt welcomed. And learned a lot. A couple of months later he got in his first pull request to core django (a one-character documentation fix). In 2013, he started diving deeper and deeper into the code and solving more and more issues. He attended djangocon again, the "django circus" in Warsaw. Because of his many patches, he got invited to join … -
Djangocon: lightning talks day 1
(One of the summaries of a talk at the 2015 Djangocon EU conference). Note beforehand: it all goes by so quick that I'm bound to miss (or mangle) names. If you want something corrected, just send me a mail or comment below. URLs to projects are also welcome if I missed them :-) I am a doctor.... - Dr Russell Keith-Magee 10 year veteran of the django core team. He also started BeeWare, a set of IDE tools. He also started his own company. He's also a doctor in computer science. So what he's going to say isn't medical advice. He has his fingers in a lot of pies. He was an angry man in the recent years. He also had some health problems with his back and shoulders. A few months ago, he broke down and couldn't take it any more. He didn't have any energy anymore to do anything. Diagnosis: deep depression. He's started therapy and is fine now. He's just started, so it is too far off to declare victory yet. Why he goes public: he wants to tell us to not put off going to a therapist or doctor. He put it off for much too … -
Djangocon: Avoiding monoliths - Hanna Kollo
(One of the summaries of a talk at the 2015 Djangocon EU conference). Hanna Kollo talks about one of the biggest anti-patterns in software development: monoliths. She works at spilgames, where they use lots of django and python. The load sensitive components are written in Erlang, but the internal tools are mostly python/django. She works mostly on the internal tools. It are business-driven applications, so they have changing requirements and it is a huge challenge to keep the code clean. If you don't watch out, you end up with one monolithic piece of code. A monolithic django app is one app. No modularity. One models.py, once set of views. Spaghetti code: everything is connected to everything. (Note: often a monolithic application is described as not having multiple layers. She looks at it more from a django viewpoint.) Monoliths are hard to understand. It is hard to make changes. Hard to reuse. Hard to decide what impacts what. The example she gave was about an internal publishing project. Basically a CMS for games. They designed a strong architecture: a modular structure. Enforced. Many small aps. She showed the dependency graph: it was one big hierarchy of apps. This wasn't a monolith, … -
Djangocon: Salt for django developers - Yann Malet
(One of the summaries of a talk at the 2015 Djangocon EU conference). Yann Malet is a co-author of high performance django. He now talks about salt, a tool for configuration managament and remote server setup. First some terminology, which might not be clear for non-english speakers. Master: the main machine that steers the whole process. Minions: the "slaves", the machines that are managed by the master. You can run commands and so on those minions. You don't need to do it on all of them, you can target specific groups like "os.ubuntu" or "role:web". He showed a couple of commandline examples like adding users and keys to a fresh system. Pillar: a set of variables for one or more minions. Look at it as a python dict. Grain: where pillar is more for multiple minions, grains are for one specific minion. It is the static data collected from the minion, like the amount of memory in the machine. In the end, the various information for the minions is all squashed together, based on the roles the minion needs to have. The total state is then pushed to the minion and applied. The easiest way to do custom stuff, like … -
Djangocon: Switching from nose to py.test at Mozilla - Mathieu Agopian
(One of the summaries of a talk at the 2015 Djangocon EU conference). Mathieu Agopian likes py.test much more than regular python unittests or nose. A bit of terminology. A test is a piece of code written to assert that another piece of code is behaving as expected. Test runner: gathers test and runs them. Test suite (or "a built"): full collection of tests to run. py.test is already quite old and it is now maintained by a big team. One of the handy features is tests written without boilerplate. assert 1 + 1 == 2 works! No need for self.assertEquals(). There is a plugin system. Like nose, it doesn't show output if the test runs OK. If a test fails, py.test provides awesome error reports. "This item misses from the second dict" instead of only showing the two dicts, for instance. Test fixtures are done via dependency injection: you just pass a fixture to the test function. No need for testSetup() and testTeardown(). You can run the same test with multiple parameters. Plugins? For instance pytest-django, which runs createdb for you. pytest-cache is another good one. It allows you to run the tests with the --lf, "last failed", option. … -
Djangocon: A sincere tale of Django, developers and security - Erik Romijn
(One of the summaries of a talk at the 2015 Djangocon EU conference). Eric Romijn explains us about security. Computers work differently than humans. Two handy questions: How does it know it? A computer is deterministic. It does what you told it to do. How might someone implement it in software? Which corner cases would be likely to be forgotten? How would the programmer explain the program to a 6 year old? He showed an example of a 2006 PHP form at his university that, with a correct university-wide username/password combination, would create a user account with the same password on a linux machine. So... a php script wouldn't normally be able to do that. So there would be something somewhere on the system that could get root access from within the webserver's process. In the end he found it... So: relentlessly ask questions. Take things apart and think creatively. Now on to django. Django, by default, is quite secure. The good thing is that django reduces the number of things you yourself can screw up. For instance, there's a good login system in place. Once you write your own authentication, you can much more easily screw it up because … -
Dreaming big?
Optional Reality's Dreaming Big Challenge has come to an end. This was a challenge about designing a "sales pitch" in 600 words or less for a text-based online roleplaying game. This is the kind of pitch you'd tease knowledgeable investors with - if investors cared about multiplayer text games and you ended up in an elevator with one, that is. There were 10 entries to the competition and as the results are now in (including very elaborate judge feedback!), I encourage you to go read all the entries. The focus was on originality and fresh ideas and maybe these short pitches represent a cross-section of the current trends or a whiff of where the wind is blowing for future games. Or maybe it will help inspire you to make a sales pitch of your own.You can find all the entries linked from the second post of this thread. Enjoy! -
Dynamic Models in Django-Part1 (adding new fields to models from admin)
Sometimes at the production level, there may be a chance of adding new fields to our model.With the normal Django models when we add a new field to the model, the database is not able to identify the new field.To make database identify the new field we have to drop the existing database from the database and sync our application again.During the time of production, it is not possible to remove the existing data. The solution for this is Django-eav.With this, we can add any no of fields to our models on fly. Steps To add New fields to the models Using Django-eav: Step1: Install Django-eav using the following command pip install -e git+git://github.com/mvpdev/django-eav.git#egg=django-eav Step2: Add 'eav' to your INSTALLED_APPS in your project’s settings.py file. Step3: Register your models with eav. To register any model with EAV, you simply need to add the registration line somewhere that will be executed when Django starts: import eav eav.register(Patient) Keep the above lines anywhere in your models.py Step4: Configure your models so that you can create new fields from admin itself You can even have your eav attributes show up just like normal fields in your model's admin pages. Just register using the eav admin class: from django.contrib … -
Dynamic Models in Django-Part1 (adding new fields to models from admin)
Some times in the production level there may be a chance of adding new fields to our model.With the normal django models when we add new field to the model the database is not able to identify the new field.To make database identify the new field we have to drop the existing database from the database and sync our application again.During the time of production it is not possible to remove the existing data. The solution for this is Django-eav.With this we can add any no of fields to our models on fly. Steps To add New fields to the models Using django-eav: Step1:Install django-eav using the following command pip install -e git+git://github.com/mvpdev/django-eav.git#egg=django-eav Step2:Add 'eav' to your INSTALLED_APPS in your project’s settings.py file. Step3:Register your models with eav. To register any model with EAV, you simply need to add the registration line somewhere that will be executed when django starts: import eav eav.register(Patient) Keep the above lines any where in your models.py Step4:Configure your models so that you can create new fields from admin it self You can even have your eav attributes show up just like normal fields in your models admin pages. Just register using the eav admin class: from django.contrib import admin … -
E-commerce (paypal) integration with Django
E-commerce is integration is becoming almost essential for every web application now a days. There are so many payment gateways to integrate with our application. Some of them are Amazon payments, Asiapay, BPAY, Brain Tree, PayPal ...etc. Out of these now in this we'll see how to integrate Paypal with our django Application. Integrating Paypal with Django: Paypal provides two kinds of api for integrating any application with it. They are 1.PayPal REST api 2.PayPal CLASSIC api 1. Integrating with REST api: Integrting paypal with dajngo with REST api is some what easy and easy to understnad. Paypal provides a sdk for integrating PayPal with Django, that is 'paypal rest sdk'. For more about restsdk check this https://github.com/paypal/rest-api-sdk-python and https://developer.paypal.com/webapps/developer/docs/api/ 2.Integrating Paypal with classic api: First intialise the paypal urls for endpoint and paypal connection as follows. End_url = 'https://api-3t.sandbox.paypal.com/nvp' PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=' Buyers use Express Checkout to pay you on PayPal's secure site and return to your site to complete the transaction. 1.Setting express checkout for transaction: params = { 'USER' : 'xxxxxxxx', # Edit this to your API user name 'PWD' : 'xxxxxxxx', # Edit this to your API password 'SIGNATURE' : 'AFcWxV21C7fd0v3bYYYRCpSSRl31A0ltbCXAvF44j6B.kUqG3MePFr40', 'METHOD':'SetExpressCheckout', 'VERSION':86, 'PAYMENTREQUEST_0_PAYMENTACTION':'SALE', # type of payment 'PAYMENTREQUEST_0_AMT':50, # amount of … -
E-commerce (paypal) integration with Django
E-commerce is integration is becoming almost essential for every web application nowadays. There are so many payment gateways to integrate with our application. Some of them are Amazon payments, Asiapay, BPAY, Brain Tree, PayPal ...etc. Out of these now in this, we'll see how to integrate Paypal with our Django Application. Integrating Paypal with Django: Paypal provides two kinds of API for integrating any application with it. They are 1.PayPal REST API 2.PayPal CLASSIC API 1. Integrating with REST API: Integrating PayPal with Django with REST API is somewhat easy and easy to understand. Paypal provides an SDK for integrating PayPal with Django, that is 'PayPal rest SDK'. For more about restsdk check this https://github.com/paypal/rest-api-sdk-python and https://developer.paypal.com/webapps/developer/docs/api/ 2.Integrating Paypal with classic API: First, initialize the PayPal URLs for endpoint and PayPal connection as follows. End_url = 'https://api-3t.sandbox.paypal.com/nvp' PAYPAL_URL = 'https://www.sandbox.paypal.com/webscr&cmd=_express-checkout&token=' Buyers use Express Checkout to pay you on PayPal's secure site and return to your site to complete the transaction. 1.Setting express checkout for the transaction: params = { 'USER' : 'xxxxxxxx', # Edit this to your API user name 'PWD' : 'xxxxxxxx', # Edit this to your API password 'SIGNATURE' : 'AFcWxV21C7fd0v3bYYYRCpSSRl31A0ltbCXAvF44j6B.kUqG3MePFr40', 'METHOD':'SetExpressCheckout', 'VERSION':86, 'PAYMENTREQUEST_0_PAYMENTACTION':'SALE', # type of payment 'PAYMENTREQUEST_0_AMT':50, # amount of transaction 'PAYMENTREQUEST_0_CURRENCYCODE':'USD', 'cancelUrl':"xxxxxxxxxxxxx", … -
Djangocon by train (plus travel tips)
I'm busy packing my bags right now. One large backpack and my regular laptop backpack. And a small money belt. The laptop bag is what I use daily. Going to a conference practically forces me to empty it out completely. Only time during the year that it happens. So that's a good thing. During the conference, I use it for my laptop, power cable, the programme, a water bottle and my jacket. For conferences, you often walk quite a bit through a city, so a proper backpack is way preferrable. During travel, this is what I use for everything I need to have handy, like extra snacks, a book, earphones, the printed-out hotel booking, etc. The large backpack is for my spare clothes, spare book, tooth brush. The regular stuff. I much prefer a big backpack to some trolley on little wheels I have to drag behind me. It might not look so "standard", but that doesn't matter much to me. It is simply more practical. Though, I must confess, the combination of two backpacks naturally leaves a little bit to be desired :-) The money belt is actually not the belt-around-the-waist type, but a small flat bag that hangs … -
Newsletter #5
Welcome to the latest news about Two Scoops Press, Daniel Roy Greenfeld (pydanny), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 is in Print We're happy to announce that the print edition of Two Scoops of Django 1.8 is now available as a physical, printed book. We're taking pre-orders now, to begin shipping on Friday, June 5th (that's when the books begin arriving at our house). Purchase Two Scoops of Django 1.8 Print Paperback in our shop In addition to the print book, we've also added a print/ebook bundle that is US$24.95 cheaper than if you bought the book and PDF separately. If you purchased the Early Release PDF, you will be receiving an email containing a discount code that works in our store worth US$24.95 off the print edition. We couldn't have done this without the encouragement of friends from around the world, or the contributors who so diligently submitted changes and corrections. From the bottom of our hearts, we thank you. You can also purchase Two Scoops of Django 1.8 on Amazon. You should be able to purchase the printed book on Amazon.in and Flipkart soon. If you have any questions, please read the Two Scoops … -
Newsletter #5
Welcome to the latest news about Two Scoops Press, Daniel Roy Greenfeld (pydanny), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 is in Print We're happy to announce that the print edition of Two Scoops of Django 1.8 is now available as a physical, printed book. We're taking pre-orders now, to begin shipping on Friday, June 5th (that's when the books begin arriving at our house). Purchase Two Scoops of Django 1.8 Print Paperback in our shop In addition to the print book, we've also added a print/ebook bundle that is US$24.95 cheaper than if you bought the book and PDF separately. If you purchased the Early Release PDF, you will be receiving an email containing a discount code that works in our store worth US$24.95 off the print edition. We couldn't have done this without the encouragement of friends from around the world, or the contributors who so diligently submitted changes and corrections. From the bottom of our hearts, we thank you. You can also purchase Two Scoops of Django 1.8 on Amazon. You should be able to purchase the printed book on Amazon.in and Flipkart soon. If you have any questions, please read the Two Scoops … -
Newsletter #5
Welcome to the latest news about Two Scoops Press, Daniel Roy Greenfeld (pydanny), and Audrey Roy Greenfeld (audreyr). Two Scoops of Django 1.8 is in Print We're happy to announce that the print edition of Two Scoops of Django 1.8 is now available as a physical, printed book. We're taking pre-orders now, to begin shipping on Friday, June 5th (that's when the books begin arriving at our house). Purchase Two Scoops of Django 1.8 Print Paperback in our shop In addition to the print book, we've also added a print/ebook bundle that is US$24.95 cheaper than if you bought the book and PDF separately. If you purchased the Early Release PDF, you will be receiving an email containing a discount code that works in our store worth US$24.95 off the print edition. We couldn't have done this without the encouragement of friends from around the world, or the contributors who so diligently submitted changes and corrections. From the bottom of our hearts, we thank you. You can also purchase Two Scoops of Django 1.8 on Amazon. You should be able to purchase the printed book on Amazon.in and Flipkart soon. If you have any questions, please read the Two Scoops … -
Improved Django Tests
Improved Django Tests