Web Framework For Python Django Book: Pdf Version

3y ago
75 Views
5 Downloads
1.19 MB
190 Pages
Last View : 26d ago
Last Download : 6m ago
Upload by : Joanna Keil
Transcription

Web framework for PythonDjango Book: pdf versioncompiled by Suvash Sedhainbir2su.blogspot.comVisit www.djangobook.com for online version of the book

The Django BookThe Django BookTable of contentsBeta, EnglishChapter 1: Introduction to DjangoOctober 30, 2006Chapter 2: Getting startedOctober 30, 2006Chapter 3: The basics of generating Web pagesNovember 6, 2006Chapter 4: The Django template systemNovember 7, 2006Chapter 5: Interacting with a database: modelsNovember 13, 2006Chapter 6: The Django admin siteNovember 13, 2006Chapter 7: Form processingTBAChapter 8: Advanced views and URLconfsDecember 11, 2006Chapter 9: Generic viewsNovember 20, 2006Chapter 10: Extending the template engineDecember 4, 2006Chapter 11: Outputting non-HTML contentDecember 11, 2006Chapter 12: Sessions, users, and registrationDecember 24, 2006Chapter 13: CommentsTBAChapter 14: CachingNovember 20, 2006Chapter 15: Other contributed sub-frameworksDecember 18, 2006Chapter 16: MiddlewareDecember 25, 2006Chapter 17: Integrating with legacy databases and applicationsDecember 25, 2006Chapter 18: Customizing the Django adminfile:///D /books/computer/programming/python/books/DJANGO BOOK/TOC.HTML (1 of 2)9/28/2007 2:33:44 PMJanuary 3, 2007

The Django BookChapter 19: Internationalization and localizationChapter 20: SecurityChapter 21: Deploying DjangoJanuary 8, 2007January 8, 2007January 24, 2007Appendix A: Case studiesTBAAppendix B: Model definition referenceTBAAppendix C: Database API referenceTBAAppendix D: URL dispatch referenceTBAAppendix E: Settings referenceTBAAppendix F: Built-in template tag/filter referenceTBAAppendix G: The django-admin utilityTBAAppendix H: Request and response object referenceTBAAppendix I: Regular expression referenceTBACopyright 2006 Adrian Holovaty and Jacob Kaplan-Moss.This work is licensed under the GNU Free Document License.file:///D /books/computer/programming/python/books/DJANGO BOOK/TOC.HTML (2 of 2)9/28/2007 2:33:44 PM

Chapter 1: Introduction to DjangoThe Django Booktable of contents next »Chapter 1: Introduction to DjangoIf you go to the Web site djangoproject.com using your Web browser — or, depending on the decade in which you’re reading thisdestined-to-be-timeless literary work, using your cell phone, electronic notebook, shoe, or any Internet-superceding contraption— you’ll find this explanation:“Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design.”That’s a mouthful — or eyeful or pixelful, depending on whether this book is being recited, read on paper or projected to you on aJumbotron, respectively.Let’s break it down.Django is a high-level Python Web framework A high-level Web framework is software that eases the pain of building dynamic Web sites. It abstracts common problems of Webdevelopment and provides shortcuts for frequent programming tasks.For clarity, a dynamic Web site is one in which pages aren’t simply HTML documents sitting on a server’s filesystem somewhere.In a dynamic Web site, rather, each page is generated by a computer program — a so-called “Web application” — that you, theWeb developer, create. A Web application may, for instance, retrieve records from a database or take some action based on userinput.A good Web framework addresses these common concerns: It provides a method of mapping requested URLs to code that handles requests. In other words, it gives you a wayof designating which code should execute for which URL. For instance, you could tell the framework, “For URLs that looklike /users/joe/, execute code that displays the profile for the user with that username.”It makes it easy to display, validate and redisplay HTML forms. HTML forms are the primary way of getting input datafrom Web users, so a Web framework had better make it easy to display them and handle the tedious code of form displayand redisplay (with errors highlighted).It converts user-submitted input into data structures that can be manipulated conveniently. For example, theframework could convert HTML form submissions into native data types of the programming language you’re using.It helps separate content from presentation via a template system, so you can change your site’s look-and-feelwithout affecting your content, and vice-versa.It conveniently integrates with storage layers — such as databases — but doesn’t strictly require the use of adatabase.It lets you work more productively, at a higher level of abstraction, than if you were coding against, say, HTTP. But itdoesn’t restrict you from going “down” one level of abstraction when needed.It gets out of your way, neglecting to leave dirty stains on your application such as URLs that contain “.aspx” or “.php”.Django does all of these things well — and introduces a number of features that raise the bar for what a Web framework shoulddo.The framework is written in Python, a beautiful, concise, powerful, high-level programming language. To develop a site usingDjango, you write Python code that uses the Django libraries. Although this book doesn’t include a full Python tutorial, ithighlights Python features and functionality where appropriate, particularly when code doesn’t immediately make sense. that encourages rapid development Regardless of how many powerful features it has, a Web framework is worthless if it doesn’t save you time. Django’s philosophyis to do all it can to facilitate hyper-fast development. With Django, you build Web sites in a matter of hours, not days; weeks,not years.This is possible largely thanks to Python itself. Oh, Python, how we love thee, let us count the bullet points: Python is an interpreted language, which means there’s no need to compile code. Just write your program and execute it.In Web development, this means you can develop code and immediately see results by hitting “reload” in your Web browser.Python is dynamically typed, which means you don’t have to worry about declaring data types for your variables.Python syntax is concise yet expressive, which means it takes less code to accomplish the same task than in other, moreverbose, languages such as Java. One line of python usually equals 10 lines of Java. (This has a convenient side benefit:Fewer lines of code means fewer bugs.)Python offers powerful introspection and meta-programming features, which make it possible to inspect and addfile:///C /Documents and Settings/Suren/Desktop/Chapter 1 Introduction to Django.htm (1 of 4)9/28/2007 4:13:54 PM

Chapter 1: Introduction to Djangobehavior to objects at runtime.Beyond the productivity advantages inherent in Python, Django itself makes every effort to encourage rapid development. Everypart of the framework was designed with productivity in mind. We’ll see examples throughout this book. and clean, pragmatic designFinally, Django strictly maintains a clean design throughout its own code and makes it easy to follow best Web-developmentpractices in the applications you create.That means, if you think of Django as a car, it would be an elegant sports car, capable not only of high speeds and sharp turns,but delivering excellent mileage and clean emissions.The philosophy here is: Django makes it easy to do things the “right” way.Specifically, Django encourages loose coupling: the programming philosophy that different pieces of the application should beinterchangeable and should communicate with each other via clear, concise APIs.For example, the template system knows nothing about the database-access system, which knows nothing about the HTTPrequest/response layer, which knows nothing about caching. Each one of these layers is distinct and loosely coupled to the rest.In practice, this means you can mix and match the layers if need be.Django follows the “model-view-controller” (MVC) architecture. Simply put, this is a way of developing software so that the codefor defining and accessing data (the model) is separate from the business logic (the controller), which in turn is separate from theuser interface (the view).MVC is best explained by an example of what not to do. For instance, look at the following PHP code, which retrieves a list ofpeople from a MySQL database and outputs the list in a simple HTML page. (Yes, we realize it’s possible for disciplinedprogrammers to write clean PHP code; we’re simply using PHP to illustrate a point.): html head title Friends of mine /title /head body h1 Friends of mine /h1 ul ?php connection @mysql connect("localhost", "my username", "my pass");mysql select db("my database"); people mysql query("SELECT name, age FROM friends");while ( person mysql fetch array( people, MYSQL ASSOC) ) {? li ?php echo person['name'] ? is ?php echo person['age'] ? years old. /li ?php } ? /ul /body /html While this code is conceptually simple for beginners — because everything is in a single file — it’s bad practice for several reasons:1. The presentation is tied to the code. If a designer wanted to edit the HTML of this page, he or she would have to edit thiscode, because the HTML and PHP core are intertwined.By contrast, the Django/MVC approach encourages separation of code and presentation, so that presentation is governed bytemplates and business logic lives in Python modules. Programmers deal with code, and designers deal with HTML.2. The database code is tied to the business logic. This is a problem of redundancy: If you rename your database tables orcolumns, you’ll have to rewrite your SQL.By contrast, the Django/MVC approach encourages a single, abstracted data-access layer that’s responsible for all dataaccess. In Django’s case, the data-access layer knows your database table and column names and lets you execute SQLqueries via Python instead of writing SQL manually. This means, if database table names change, you can change it in asingle place — your data-model definition — instead of in each SQL statement littered throughout your code.3. The URL is coupled to the code. If this PHP file lives at /foo/index.php, it’ll be executed for all requests to that address.But what if you want this same code to execute for requests to /bar/ and /baz/? You’d have to set up some sort of includesor rewrite rules, and those get unmanageable quickly.file:///C /Documents and Settings/Suren/Desktop/Chapter 1 Introduction to Django.htm (2 of 4)9/28/2007 4:13:54 PM

Chapter 1: Introduction to DjangoBy contrast, Django decouples URLs from callback code, so you can change the URLs for a given piece of code.4. The database connection parameters and backend are hard-coded. It’s messy to have to specify connectioninformation — the server, username and password — within this code, because that’s configuration, not programming logic.Also, this example hard-codes the fact that the database engine is MySQL.By contrast, Django has a single place for storing configuration, and the database-access layer is abstracted so thatswitching database servers (say, from MySQL to PostgreSQL) is easy.What Django doesn’t doOf course, we want this book to be fair and balanced. With that in mind, we should be honest and outline what Django doesn’t do: Feed your cat.Mind-read your project requirements and implement them on a carefully timed basis so as to fool your boss into thinkingyou’re not really staying home to watch “The Price is Right.”On a more serious note, Django does not yet reverse the effects of global warming.Why was Django developed?Django is deeply rooted in the problems and solutions of the Real World. It wasn’t created to be marketed and sold to developers,nor was it created as an academic exercise in somebody’s spare time. It was built from Day One to solve daily problems for anindustry-leading Web-development team.It started in fall 2003, at — wait for it — a small-town newspaper in Lawrence, Kansas.For one reason or another, The Lawrence Journal-World newspaper managed to attract a talented bunch of Web designers anddevelopers in the early 2000s. The newspaper’s Web operation, World Online, quickly turned into one of the most innovativenewspaper Web operations in the world. Its three main sites, LJWorld.com (news), Lawrence.com (entertainment/music) andKUsports.com (college sports), began winning award after award in the online-journalism industry. Its innovations were many,including: The most in-depth local entertainment site in the world, Lawrence.com, which merges databases of local events, bands,restaurants, drink specials, downloadable songs and traditional-format news stories.A summer section of LJWorld.com that treated local Little League players like they were the New York Yankees — giving eachteam and league its own page, hooking into weather data to display forecasts for games, providing 360-degree panoramasof every playing field in the vicinity and alerting parents via cell-phone text messages when games were cancelled.Cell-phone game alerts for University of Kansas basketball and football games, which let fans get notified of scores and keystats during games, and a second system that used artificial-intelligence algorithms to let fans send plain-English textmessages to the system to query the database (“how many points does giddens have” or “pts giddens”).A deep database of all the college football and basketball stats you’d ever want, including a way to compare any two or moreplayers or teams in the NCAA.Giving out blogs to community members and featuring community writing prominently — back before blogs were trendy.Journalism pundits worldwide pointed to World Online as an example of the future of journalism. The New York Times did a frontpage business-section story on the company; National Public Radio did a two-day series on it. World Online’s head editor, RobCurley, spoke nearly weekly at journalism conferences across the globe, showcasing World Online’s innovative ideas and sitefeatures. In a bleak, old-fashioned industry resistant to change, World Online was a rare exception.Much of World Online’s success was due to the technology behind its sites, and the philosophy that computer programmers arejust as important in creating quality 21st Century journalism as are journalists themselves.This is why Django was developed: World Online’s developers needed a framework for developing complex database-driven Websites painlessly, easily and on journalism deadlines.In fall 2003, World Online’s two developers, Adrian Holovaty and Simon Willison, set about creating this framework. They decidedto use Python, a language with which they’d recently fallen in love. After exploring (and being disappointed by) the availablePython Web-programming libraries, they began creating Django.Two years later, in summer 2005, after having developed Django to a point where it was efficiently powering most of WorldOnline’s sites, the World Online team, which now included Jacob Kaplan-Moss, decided it’d be a good idea to open-source theframework. That way, they could give back to the open-source community, get free improvements from outside developers, andgenerate some buzz for their commercial Django-powered content-management system, Ellington (http://www.ellingtoncms.com/). Django was open-sourced in July 2005 and quickly became popular.Although Django is now an open-source project with contributors across the planet, the original World Online developers stillprovide central guidance for the framework’s growth, and World Online contributes other important aspects such as employeetime, marketing materials and hosting/bandwidth for the framework’s Web site (http://www.djangoproject.com/).file:///C /Documents and Settings/Suren/Desktop/Chapter 1 Introduction to Django.htm (3 of 4)9/28/2007 4:13:54 PM

Chapter 1: Introduction to DjangoWho uses Django?Web developers around the world use Django. Some specific examples: World Online, of course, continues to use Django for all its Web sites, both internal and for commercial clients. Some of itsDjango-powered sites are: http://www.ljworld.com/ http://www.lawrence.com/ http://www.6newslawrence.com/ http://www.visitlawrence.com/ http://www.lawrencechamber.com/ http://www2.kusports.com/stats/The Washington Post’s Web site, washingtonpost.com, uses Django for database projects and various bits of functionalityacross the site. Some examples: The U.S. Congress votes database, http://projects.washingtonpost.com/congress/The staff directory and functionality that lets readers contact reporters, appearing as links on most article pages.Faces of the Fallen, rime.org, a freely browsable database of crime reported in Chicago and one of the original Google Maps mashups,was developed in Django.Tabblo.com, an innovative photo-sharing site, uses Django. The site lets you piece together your photos to create photopages that tell stories.Texasgigs.com, a local music site in Dallas, Texas, was written with Django.Grono.net, a Polish social-networking site, started replacing its Java code with Django. It found that Django not only wasfaster (and more fun) to develop in — it performed better than Java and required less hardware.Traincheck.com was developed in Django. The site lets you send text-messages from your cell phone to get subway trainschedules for your immediate location.An up-to-date list of dozens of sites that use Django is located at tesAbout this bookThe goal of this book is to explain all the things Django does — and to make you an expert at using it.By reading this book, you’ll learn the skills needed to develop powerful Web sites quickly, with code that’s clean and easy tomaintain.We’re glad you’re here!Copyright 2006 Adrian Holovaty and Jacob Kaplan-Moss.This work is licensed under the GNU Free Document License.file:///C /Documents and Settings/Suren/Desktop/Chapter 1 Introduction to Django.htm (4 of 4)9/28/2007 4:13:54 PMtable of contents next »

Chapter 2: Getting startedThe Django Book« previous table of contents next »Chapter 2: Getting startedLet’s get started, shall we?Fortunately, installing Django is easy. Because Django runs anywhere Python does, Django can be configured in many ways.We’ve tried to cover the common scenarios for Django installations in this chapter.Installing PythonDjango is written in 100% pure Python code, so you’ll need to install Python on your system. Django requires Python 2.3 orhigher.If you’re on Linux or Mac OS X, you probably already have Python installed. Type python at a command prompt (or in Terminal,in OS X). If you see something like this, then Python is installed:Python 2.4.1 (#2, Mar 31 2005, 00:05:10)[GCC 3.3 20030304 (Apple Computer, Inc. build 1666)] on darwinType "help", "copyright", "credits" or "license" for more information. Otherwise, if you see an error such as "command not found", you’ll have to download and install Python. See http://www.python.org/download/ to get started. The installation is fast and easy.Installing DjangoInstalling an official releaseMost people will want to install the latest official release from http://www.djangoproject.com/download/. Django uses thestandard Python distutils installation method, which in Linux land looks like:1. Download the tarball, which will be named something like Django-1.0.tar.gz.2. tar xzvf Django-*.tar.gz3. cd Django-*4. sudo python setup.py installIf everything worked, you should be able to import the module django from the Python interactive interpreter. import django django.VERSION(1, 0, ‘official’)The Python interactive interpreter:The Python interactive interpreter is a command-line program that lets you write a Python program interactively. Tostart it, just run the command python at the command line. Throughout this book, we’ll feature example Pythoncode that’s printed as if it’s being entered in the interactive interpreter. The triple greater-than signs (“ ”)signify a prompt.Installing Django from SubversionIf you want to work on the bleeding edge, or if you

Django follows the “model-view-controller” (MVC) architecture. Simply put, this is a way of developing software so that the code for defining and accessing data (the model) is separate from the business logic (the controller), which in turn is separate from the

Related Documents:

Session 18 (Working with Django Web Framework) Installing Django, Setting Up Django Working with Web Application Development Django API, Django Admin App, Django Views Django Templates CRUD Operation using Django Working with Django with BootStrap 4.0 Working with Django Forms Django Cl

Python Django Certification Training 3 P a g e About the Program Intellipaat’s Django course makes you master the Django REST framework, Django models, Django AJAX, Django jQuery, etc. In this best Python Django course, you will learn about the web framework by doi

Django Included Apps django.contrib.auth An authentication system. django.contrib.contenttypes A framework for content types. django.contrib.sessions A session framework. django.contrib.sites A framework for managing multiple sites with one Django installation. django

Django ORM Cookbook Documentation, Release 2.0 Django ORM Cookbook is a book about doing things with Django ORM and Django models. Django is a "MTV" (Model-Template-View) framework - This book provides a deep dive into the Mpart. They take the form of about 50 questions of the form How to do X with Django ORM/Queryset/Models. Contents 1

Capítulo 14: Django desde la línea de comandos. 60 Observaciones 60 Examples 60 Django desde la línea de comandos. 60 Capítulo 15: Django Rest Framework 61 Examples 61 Barebones simples API de solo lectura 61 Capítulo 16: Django y redes sociales 63 Parámetros 63 Examples 64 Manera fácil: python-social-auth 64 Usando Django Allauth 67

Django does all of these things well — and introduces a number of features that raise the bar for what a Web framework should do. The framework is written in Python, a beautiful, concise, powerful, high-level programming language. To develop a site using Django, you write Python code that uses the Django libraries.

Python Django & React Js will be the best Choice. Complete full-stack web development course with Python - Django as backend and ReactJS in the frontend. Along with this, we will use a Payment Gateway and SMS Gateway in our E-Commerce Web and Other Applications. Eligibility: This Online Training Program on React Js - Django is for all students and

Django Web Framework: A Comprehensive Introduction and Step by Step Installation Abstract One of the emerging framework in python is Django framework which follows the MVT pattern for implementation. Django is an open source framework that facilitates user to create the secure website w