Django进修笔记----settings and database_based App demo

    添加时间:2013-7-23 点击量:

    原文参考docs.djangoproject.com, what can manage.py utility do? find here.




    1.Database Setup


    编辑settings.py文件,设备数据库,包含provider和数据库(文件路径)名称,然后保存(不断定要不要compile下)。若是为SQLite,应用此操纵主动创建数据库文件(给出绝对路径名c:/blah/blah/demoDB.db,engine:django.db.backends.sqlite3)


    应用:python manage.py syncdb





    2.设置Time Zone等


    默认为美国中部时候Chicago




    3.Installed_apps


    settings.py文件底部默认有几个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.contrib.messages – A messaging framework.

    • django.contrib.staticfiles – A framework for managing static files.


      PS:上边每个app都至少应用数据库中一张表,所以有须要时应用python manage.py syncdb来创建db file.这个号令会查找installed_apps中给出的信息和settings.py中数据库设备信息来创建数据库和表。当注释掉某些默认apps时,此号令只为installed_apps中未注释的apps创建table.


      一个app可以经由过程package和distribute操纵,将其应用在多个project里。




    3.Create models(with an app demo called Polls)


      每个应用Django所写的app都是一个Python包,按照商定会在Python下有响应的路径。全部app根蒂根基目次布局都由Django自带的utility来完成,我们只须要focus到代码项目组。


      app和project的差别:小我懂得,相当于VS下的project和solution的差别。一个app可属于多个project,一个project可包含多个apps和相干设备文件.


      项目可以在python的任何路径下,如:python manage.py startapp polls;对应polls文件夹下就有 __init__.py,models.py,tests.py,views.py四个文件。


      1.创建基于数据库的web app起首要定义models(数据的layout,包含fields和数据上的操纵);Django也遵守DRY原则,一处定义,多处持续;


      2.创建两个model,每个Choice都与一个Poll相接洽关系,编辑app文件夹下的model.py文件,如下:


         django.db import models
        class Pollmodels.Model):
            question = models.CharFieldmax_length=200
            pub_date = models.DateTimeFielddate published
        class Choicemodels.Model):
            poll = models.ForeignKeyPoll)            #外键,Django支撑many-to-ones,many-to-manys,one-to-ones.
            choice_text = models.CharFieldmax_length=200)  #Field class给出类型,某些类型须要参数以作两用:db schema和validation.
            votes = models.IntegerFielddefault=0)         #choice_text and votes为存储在db中的字段名,可在python中应用其值。


        PS:每个model都由一个持续于models.Model的类来默示,每个model都稀有个变量,每个变量代表model中的一个数据库字段;


      3.上边的定义可供Django: 1)为此app创建database schema(create table语句); 2)创建Pyhton用于接见Poll和Choice对象的API;


      4.起首得告诉project的是,polls app已经安装。Django下的apps都是插拔式的(pluggable),一个app可用于多个project(as showed above),我们可以distribute这些apps,因为这些apps并不耦合于其他Django installation(小我懂得为不耦合于任何project);


      5.settings.py中参加此app[即polls];


      6.Run: python manage.py sql polls,告诉Django包含polls app:


        


      7.可选项:应用manage.py对数据库进行设备;


      8.Run: manage.py syncdb在数据库中创建model的tables;


        


      9.Run:manage.py shell进入shell,然后可以应用Database API操纵刚定义的models(CRUD);


    此demo原文来自:https://docs.djangoproject.com/en/1.5/intro/tutorial01/

    原来,再大的房子,再大的床,没有相爱的人陪伴,都只是冰冷的物质。而如果身边有爱人陪伴,即使房子小,床小,也觉得无关紧要,因为这些物质上面有了爱的温度,成了家的元素。—— 何珞《婚房》#书摘#
    分享到: