zoukankan      html  css  js  c++  java
  • Django学习笔记----settings and database_based App demo

    原文参考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:

      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文件,如下:

        from django.db import models
        class Poll(models.Model):
            question = models.CharField(max_length=200)
            pub_date = models.DateTimeField('date published')
        class Choice(models.Model):
            poll = models.ForeignKey(Poll)            #外键,Django支持many-to-ones,many-to-manys,one-to-ones.
            choice_text = models.CharField(max_length=200)  #Field class给出类型,某些类型需要参数以作两用:db schema和validation.
            votes = models.IntegerField(default=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/

  • 相关阅读:
    ajax中网页传输(三)XML——下拉列表显示练习
    ajax中网页传输(二)JSON——下拉列表显示练习
    ajax中网页传输(一)TEXT——带有删除功能的数据库表格显示练习
    ajax讲解:“创建用户”和“用户登录”练习
    JSON讲解和“弹窗”
    jQuery讲解
    Victor and String[Bestcoder #52 1004](回文树)
    回文串[APIO2014](回文树)
    回文子串计数[自创](回文树)
    随机序列[SHOI2016](找规律+线段树)
  • 原文地址:https://www.cnblogs.com/paul-cheung/p/3208236.html
Copyright © 2011-2022 走看看