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,而且都留有学习记录,我已经大概有了一个大的框架,那么本文就从头再走一遍流程,其 ...
随机推荐
- 切割窗口url
var keyWords=location.href.split("?")[1].split("&"); console.log(keyWords) f ...
- softmax回归---sigmoid(1)
介绍softmax之前先讲讲sigmoid: 逻辑回归模型常用的函数:sigmoid函数(用来做二分类) 表达式:f(x)=L/(1+exp-k(x-x0)) 其图像: 本质:将一个真值映射到(0,1 ...
- vfs:结构体对象
VFS结构体 super_block 存储一个已安装的文件系统的控制信息,代表一个已安装的文件系统:每次一个实际的文件系统被安装时, 内核会从磁盘的特定位置读取一些控制信息来填充内存中的超级块对象.一 ...
- 企业版 Linux 附加软件包(EPEL)
企业版 Linux 附加软件包(以下简称 EPEL)是一个由特别兴趣小组创建.维护并管理的,针对 红帽企业版 Linux(RHEL)及其衍生发行版(比如 CentOS.Scientific Linux ...
- 46.object类型
主要知识点 1.field分类 2.object field类型的存储 一.field类型分类 1.multivalue field { "tags": [ "tag1& ...
- SQLServer · BUG分析 · Agent 链接泄露分析(转载)
背景 SQLServer Agent作为Windows服务提供给用户定期执行管理任务,这些任务被称为Job:考虑应用镜像的场景如何解决Job同步问题,AWS RDS的做法是不予理会,由用户维护Job, ...
- matplotlib的annotate用法小结
这个是matplotlib自定义的annotate方法的文本: 一. def annotate(self, s, xy, *args, **kwargs): a = mtext.Annotation( ...
- 洛谷 P2483 BZOJ 1975 [SDOI2010]魔法猪学院
题目描述 iPig在假期来到了传说中的魔法猪学院,开始为期两个月的魔法猪训练.经过了一周理论知识和一周基本魔法的学习之后,iPig对猪世界的世界本原有了很多的了解:众所周知,世界是由元素构成的:元素与 ...
- 转载 - KMP算法
出处:http://www.cnblogs.com/dolphin0520/archive/2011/08/24/2151846.html KMP算法 在介绍KMP算法之前,先介绍一下BF算法. 一. ...
- 进入全屏 nodejs+express+mysql实现restful风格的增删改查示例
首先,放上项目github地址:https://github.com/codethereforam/express-mysql-demo 一.前言 之前学的java,一直用的ssm框架写后台.前段时间 ...