Saturday, December 9, 2017

Django Building a blog | Designing blog data Schema

Below is for Ubuntu.
  1. source djangoTestEnv/bin/activate
  2. cd Desktop
  3. django-admin startproject blogSite
  4. cd blogSite
  5. python manage.py startapp myBlog
  6. Go to blogSite/blogSite/settings.py and add 'myBlog' in INSTALLED_APPS section. It should look similar to below
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'myBlog',
    ]
  7. Open blogSite/myBlog/models.py and paste content in this file
  8. Since models.py is modified, we need to sync DB (migrate) to it. To do this, execute below commands
    cd blogSite (project root folder)
    python manage.py makemigrations myBlog

    output looks similar to below:
    Migrations for 'myBlog':
      myBlog/migrations/0001_initial.py
        - Create model Post

    This means Django just created   myBlog/migrations/0001_initial.py referring to our code in models.py. You can open this file and see how the migration looks like. 
  9. Execute below command to check SQL commands that Django executes
    python manage.py sqlmigrate myBlog 0001
  10. Apply migrations
    python manae.py migrate
  11. For any change in models, we need to apply migrations again just like above.






If you enjoyed this post, make sure you subscribe to my RSS feed! Comments are encouraged

Friday, December 1, 2017

Django Learn Series | Fields


Field Types:
  1. Numeric Data
    1. IntegerField 
    2. DecimalField
  2. Textual Data
    1. CharField
      • Requires max_length attribute
    2. TextField
      • Doesn't require max_length attribute
    3. EmailField
    4. URLField
  3. File Data
    1. FileField
      • Example: filename.docx
    2. ImageField
      • Example: abc.jpg
  4. Miscellaneous Data
    1. BooleanField
    2. DateTimeField
This link provides detailed info about field arguments and field types.

Django Learn Series| Settings



  1. settings.py is global to all apps in a django project.
  2. Django documentation in this link provides good overview of the settings.
  3. This link provides more detailed info of these settings
  4. Settings those needed change for first time.
    • INSTALLED_APPS
    • TEMPLATES
    • STATICFILES_DIRS
  5. Settings those might needed change.
    • DEBUG
      • Set to true by default, but is best set to false when your web project is deployed. When DEBUG is true, any stack traces are shown in the webpage, which is helpful for development but is a security risk when the side is publicly available.
    • DATABASES
      • We're using the built in default database called SQLite, but if you want to use a production ready database such as PostgreSQL or MYSQL, You'll need to change the engine and name entries in the DATABASES setting and in production, you'll need to set the user and password entries for authentication