Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2279726
  • 博文数量: 297
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 2200
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-31 14:30
个人简介

自己慢慢积累。

文章分类

全部博文(297)

分类: Web开发

2016-09-09 16:26:10

我正学习的书是基于 1.1.0版本的。很多地方都不同。上一篇文章已经写了一个不同的地方。
这次干脆写个1.10.1 的完整的。

这里只是简述流程,具体代码的意思不做详细讲解,请自觉查阅相关文档。。。

1.项目下创建APP--books
  cmd 进入到项目目录下(例如:mysite),manage.py的同级目录,执行
  python manage.py startapp books
  这个命令并没有输出什么,它只在 mysite 的目录里创建了一个 books 目录,目录下自动创建了一些py文件
  不同点: 1.10.1 比 1.1.0 要多几个py文件和一个目录

2.创建模型,编写models.py
  models.py 位于刚刚生成的app books 下面,这个是用来生成数据库的。
  如下:包含三张表。出版社(publisher),书(book),作者(Author)
from django.db import models

class Publisher(models.Model):
    name = models.CharField(max_length=30)
    address = models.CharField(max_length=50)
    city = models.CharField(max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()

class Author(models.Model):
    first_name = models.CharField(max_length=30)
    last_name = models.CharField(max_length=40)
    email = models.EmailField()

class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()

3.模型安装
完成这些代码之后,现在让我们来在数据库中创建这些表
再次编辑 settings.py 文件, 找到 INSTALLED_APPS 设置。 INSTALLED_APPS 告诉 Django 项目哪些 app 处于激活状态
设置后,内容如下(在INSTALLED_APPS最后一行添加 'books'):
INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'books',

)
不同点: 1.10.1 最后一行为 books, 如果是1.1.0 最后一行是 mysite.books

现在我们可以创建数据库表了。 首先,用下面的命令验证模型的有效性:


python manage.py check

check 命令检查你的模型的语法和逻辑是否正确
不同点: 1.10.1 是 check ,1.1.0 命令是 validate , 还有就是1.10.1 不要注释掉其他行,1.1.0可以注释掉其他行。
检查成功后,执行命令来创建数据库:
1.9.5以后版本 第一步 python manage.py makemigrations books 第二步 python mange.py sqlmigrate books 0001 第三步 python manage.py migrate
说明:
 python manage.py makemigrations 用来检测数据库变更和生成数据库迁移文件
 python manage.py sqlmigrate demo 0001 用来把数据库迁移文件转换成数据库语言
 python manage.py migrate 用于执行迁移动作

1.1.0版本  python manage.py sqlall books  python manage.py syncdb

5、站点管理--创建超级用户
(旧)1.1.0:运行 python manage.py syncdb 
(新)1.10.1 运行 python manage.py makemigrations           python  manager.py createsuperuser

6、站点管理--运行管理工具
 启动服务器(如前: python manage.py runserver  ),然后在浏览器中访问:

7、将你的Models加入到Admin管理中
(旧)1.1.0 需要自己新建admin.py
 ( 新 )1.10.1 已经新建好admin.py
修改后为:

点击(此处)折叠或打开

  1. from django.contrib import admin

  2. # Register your models here.

  3. from books.models import Publisher, Author, Book

  4. admin.site.register(Publisher)
  5. admin.site.register(Author)
  6. admin.site.register(Book)
刷新一下浏览器,发现已经关联上了。


阅读(4638) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~