100
Each List Should Have Its Own URL102
Capturing Parameters from URLs103
Adjusting new_list to the New World104
One More View to Handle Adding Items to an Existing List105
Beware of Greedy Regular Expressions!106
The Last New URL106
The Last New View107
But How to Use That URL in the Form?108
A Final Refactor Using URL includes110
Part II.
Web Development Sine Qua Nons7.
Prettification: Layout and Styling, and What to Test About It. . . . . . . . . . . . . . . . . . . . 115 What to Functionally Test About Layout and Style115
Prettification: Using a CSS Framework118
Django Template Inheritance120
Integrating Bootstrap121
Rows and Columns122
Static Files in Django122
Switching to StaticLiveServerCase124
Using Bootstrap Components to Improve the Look of the Site125
Jumbotron!125
Large Inputs125
Table Styling126
Using Our Own CSS126
What We Glossed Over: collectstatic and Other Static Directories127
A Few Things That Didn’t Make It130
8.
Testing Deployment Using a Staging Site. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131 TDD and the Danger Areas of Deployment132
As Always, Start with a Test133
Getting a Domain Name135
Manually Provisioning a Server to Host Our Site136
Choosing Where to Host Our Site136
Spinning Up a Server137
User Accounts, SSH, and Privileges137
Installing Nginx138
Configuring Domains for Staging and Live139
Using the FT to Confirm the Domain Works and Nginx Is Running139
Deploying Our Code Manually140
Table of Contents
|
vii