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:
- 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文件,如下:
)
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/
Django学习笔记----settings and database_based App demo的更多相关文章
- Django学习笔记(二)App创建之Model
通过实例学习, 构建一个投票(Polls)Application, 目标结果包含两个site, 一个site用来显示投票问题以及投票结果(即将展示出来的网站), 另一个site用来管理Poll实例的增 ...
- Django 学习笔记之三 数据库输入数据
假设建立了django_blog项目,建立blog的app ,在models.py里面增加了Blog类,同步数据库,并且建立了对应的表.具体的参照Django 学习笔记之二的相关命令. 那么这篇主要介 ...
- Django学习笔记(三)—— 型号 model
疯狂暑期学习 Django学习笔记(三)-- 型号 model 參考:<The Django Book> 第5章 1.setting.py 配置 DATABASES = { 'defaul ...
- Django 学习笔记(二)
Django 第一个 Hello World 项目 经过上一篇的安装,我们已经拥有了Django 框架 1.选择项目默认存放的地址 默认地址是C:\Users\Lee,也就是进入cmd控制台的地址,创 ...
- Django学习笔记(9)—— 开发用户注册与登录系统
一,项目题目: 开发用户注册与登录系统 该项目主要练习使用Django开发一个用户注册与登录的系统,通过这个项目然后巩固自己这段时间所学习的Django知识. 二,项目需求: 开发一个简单的用户登录与 ...
- Django学习笔记(4)——Django连接数据库
前言 在MVC或者MTV设计模式中,模型(M)代表对数据库的操作.那么如何操作数据库呢?本小节就认真学习一下.首先复习一下Django的整个实现流程 ,然后再实现一下使用数据库的整个流程,最后学习一下 ...
- Django学习笔记(一):环境安装与简单实例
Django学习笔记(一):环境安装与简单实例 通过本文章实现: Django在Windows中的环境安装 Django项目的建立并编写简单的网页,显示欢迎语与当前时间 一.环境安装 结合版本兼容性等 ...
- Django学习笔记(二):使用Template让HTML、CSS参与网页建立
Django学习笔记(二):使用Template让HTML.CSS参与网页建立 通过本文章实现: 了解Django中Template的使用 让HTML.CSS等参与网页建立 利用静态文件应用网页样式 ...
- Django学习笔记(20)——BBS+Blog项目开发(4)Django如何使用Bootstrap
本文学习如何通过Django使用Bootstrap.其实在之前好几个Django项目中已经尝试使用过了Bootstrap,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其 ...
随机推荐
- TCP中的RST标志(Reset)详解
在谈RST攻击前,必须先了解TCP:如何通过三次握手建立TCP连接.四次握手怎样把全双工的连接关闭掉.滑动窗口是怎么传输数据的.TCP的flag标志位里RST在哪些情况下出现.下面我会画一些尽量简化的 ...
- yum的方式搭建mysql
1.安装相应的软件yum install mysql : 安装mysql客户端 yum install mysql-server 安装服务端 yum install mysql-devel 安装相关的 ...
- webpack学习笔记(1)--webpack.config.js
主要的信息都是来自于下方所示的网站 https://webpack.docschina.org/configuration 从 webpack 4.0.0 版本开始,可以不用通过引入一个配置文件打包项 ...
- 洛谷P1307 数字反转【水题】
给定一个整数,请将该数各个位上数字反转得到一个新数.新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2). 输入输出格式 输入格式: 一个整数 NN ...
- bit ( 比特 )和 Byte(字节)的关系
一.存储单位的bit 和 Byte1.bit(比特)bit也就是我们不一定听说过的比特,大名鼎鼎的比特币就是以此命名的.它的简写为小写字母 “b” .作为信息技术的最基本存储单元,因为比特实在太小了, ...
- PHP学习总结(13)——PHP入门篇之常量
1.什么是常量 什么是常量?常量可以理解为值不变的量(如圆周率):或者是常量值被定义后,在脚本的其他任何地方都不可以被改变.PHP中的常量分为自定义常量和系统常量(后续小节会详细介绍). 自定义常量是 ...
- poj 3177&&3352 求边双联通分量,先求桥,然后求分量( 临界表代码)
/*这道题是没有重边的,求加几条边构成双联通,求边联通分量,先求出桥然后缩点,成一个棵树 找叶子节点的个数*/ #include<stdio.h>//用容器写在3177这个题上会超内存,但 ...
- sync_binlog=1
MySQL提供一个sync_binlog参数来控制数据库的binlog刷到磁盘上去. sync_binlog=0,表示MySQL不控制binlog的刷新,由文件系统自己控制它的缓存的刷新.这时候的性能 ...
- 框架统一出参数DTO格式
这个可以没必要定义. 每个接口返回自己的数据格式就好
- Spring Boot上传文件
我们使用Spring Boot最新版本1.5.9.jdk使用1.8.tomcat8.0. <parent> <groupId>org.springframework.boot& ...