3.Django入门:教程-模型

来源:互联网 发布:淘宝订单号在哪里找 编辑:程序博客网 时间:2024/05/23 00:02

如何创建一个模型

1.创建一个项目

(1)创建项目的命令

django-admin startproject mysite

(2)项目文件结构

mysite/    manage.py    mysite/        __init__.py        settings.py        urls.py        wsgi.py
  • 外层的mysite目录:项目的一个容器,命名对Django无关紧要
  • manage.py:一个命令行工具,提供多种方式对Django项目进行交互
  • 内层的mysite/目录:项目的真正的Python包,是导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)
  • mysite/__init__.py:一个空文件,告诉Python这个目录被看做Python包
  • mysite/settings.py:Django项目的设置
  • mysite/urls.py:Django项目的URL声明,Django站点的“目录”
  • mysite/wsgi.py:用于项目与WSGI兼容的Web服务器入口

2.修改项目设置settings.py

(1)修改数据库连接设置

DATABASES 'default'条目中修改以下的配置

ENGINE

  • ‘django.db.backends.sqlite3’
  • ‘django.db.backends.postgresql_psycopg2’
  • ‘django.db.backends.mysql’
  • ‘django.db.backends.oracle’

NAME

数据库名称,如果是SQLite,应该是文件的绝对路径包括文件名。


如果项目使用SQLite之外的其他数据库引擎,必须添加下列额外设置:

USER

PASSWORD

HOST

(2)修改时区

TIME_ZONE

(3)修改默认APP设置

INSTALLED_APPS

默认的APP

  • django.contrib.admin —— 管理站点
  • django.contrib.auth —— 认证系统
  • django.contrib.contenttypes —— 用于内容类型的框架
  • django.contrib.sessions —— 会话框架
  • django.contrib.messages —— 消息框架
  • django.contrib.staticfiles —— 管理静态文件的框架

使用之前先在数据库中创建相应的表

python manage.py migrate

3.启动开发服务器

默认开启

python manage.py runserver

修改端口

python manage.py runserver 8080

监听所有外网IP

python manage.py runserver 0.0.0.0:8000

4.创建模型

(1)创建APP

创建APP的命令

python manage.py startapp polls

APP的文件结构

polls/    __init__.py    admin.py    migrations/        __init__.py    models.py    tests.py    views.py

编辑polls/models.py文件

from django.db import modelsclass Question(models.Model):    question_text = models.CharField(max_length=200)    pub_date = models.DateTimeField('date published')class Choice(models.Model):    question = models.ForeignKey(Question)    choice_text = models.CharField(max_length=200)    votes = models.IntegerField(default=0)

(2)激活模型

编辑mysite/settings.py文件,并修改INSTALLED_APPS设置以包含字符串’polls’

INSTALLED_APPS = (    'django.contrib.admin',    'django.contrib.auth',    'django.contrib.contenttypes',    'django.contrib.sessions',    'django.contrib.messages',    'django.contrib.staticfiles',    'polls',)

通过运行makemigrations告诉Django,已经对模型做了一些更改并且会将这些更改存储为迁移文件

python manage.py makemigrations polls

sqlmigrate命令接收迁移文件的名字并返回它们的SQL语句

python manage.py sqlmigrate polls 0001

再次运行migrate在你的数据库中创建模型所对应的表

python manage.py migrate

(3)总结

  • 修改你的模型(在models.py文件中)
  • 运行python manage.py makemigrations ,为这些修改创建迁移文件
  • 运行python manage.py migrate ,将这些改变更新到数据库中

5.数据库API

调用Python shell

python manage.py shell

给模型添加__str__()方法,在使用交互式命令行时看得更加方便,在Django自动生成的管理界面中使用对象的这种表示

  • 对于Python 3来说,这很简单,只需使用__str__()
  • 对于Python 2来说,你应该定义__unicode__()方法并返回unicode 值
0 0