Django 模型
admin
2023-07-30 20:43:25
0

软件环境: windows7+Python2.7.9+Django1.8.2

一、定义模型

1. 创建 APP

Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app:
python manage.py startapp TestModel

2. 定义Model

我们修改 TestModel/models.py文件,代码如下:

# models.py
from django.db import models

class Test(models.Model):
    name = models.CharField(max_length=20)

以上的类名代表了数据库名称,且继承了models.Model,类里面的字段代表数据表中的字段(name),数据类型则由CharField(相当于varchar)、DateField(相当于datetime), max_length 参数限定长度。

3. 配置APP

接下来在settings.py中找到INSTALLED_APPS这一项,如下:

INSTALLED_APPS = (
\'django.contrib.admin\',
\'django.contrib.auth\',
\'django.contrib.contenttypes\',
\'django.contrib.sessions\',
\'django.contrib.messages\',
\'django.contrib.staticfiles\',
\'TestModel\',               # 添加此项

4. 创建数据表

  • 数据表同步命令(Django < 1.7)
    python manage.py syncdb

  • 数据表同步命令 (Django >= 1.7)
    python manage.py makemigrations
    python manage.py migrate

看到几行\”Creating table…\”的字样,你的数据表就创建好了。

Creating tables …
……
Creating table TestModel_test #我们自定义的表
……

表名组成结构为:app名_类名(如:TestModel_test)。
注意:尽管我们没有在models给表设置主键,但是Django会自动添加一个id作为主键。

二、数据库操作

1. 修改urls.py

接下来我们在 HelloWorld/HelloWorld 目录中修改urls.py:

from django.conf.urls import *
from HelloWorld.view import hello
from HelloWorld.testdb import testdb

urlpatterns = patterns(\"\",
    (\'^hello/$\', hello),
    (\'^testdb/$\', testdb),
)

2. 添加数据

HelloWorld/HelloWorld目录中添加 testdb.py 文件。
添加数据需要先创建对象,然后再执行 save 函数,相当于SQL中的INSERT:

# -*- coding: utf-8 -*-

from django.http import HttpResponse

from TestModel.models import Test

# 数据库操作
def testdb(request):
test1 = Test(name=\'w3cschool.cc\')
test1.save()
return HttpResponse(\"

数据添加成功!

\")

访问http://localhost:8000/testdb/就可以看到数据添加成功的提示。

三、问题解决思路

1. No module named mysqldb

在命令行中运行
python manage.py syncdb
出现以下错误

  • No module named mysqldb

解决方法参考django.core.exceptions.ImproperlyConfigured: Error loading MySQLdb module: No module named MySQLdb

2. without Migrations

python manage.py syncdb
出现下面内容


syncdb02.png

输入网址http://localhost:8000/testdb/ ,显示错误页面


testdb02.png

表明数据库中的testmodel_test表没有创建成功。

3. 查找Django Documentation – Models

执行如下命令 (Django >= 1.7)

  • python manage.py makemigrations
  • python manage.py migrate


makemigrations.png

4. 输入网址http://localhost:8000/testdb/ ,显示结果页面


models02.png

相关内容

热门资讯

Mobi、epub格式电子书如... 在wps里全局设置里有一个文件关联,打开,勾选电子书文件选项就可以了。
500 行 Python 代码... 语法分析器描述了一个句子的语法结构,用来帮助其他的应用进行推理。自然语言引入了很多意外的歧义,以我们...
定时清理删除C:\Progra... C:\Program Files (x86)下面很多scoped_dir开头的文件夹 写个批处理 定...
scoped_dir32_70... 一台虚拟机C盘总是莫名奇妙的空间用完,导致很多软件没法再运行。经过仔细检查发现是C:\Program...
65536是2的几次方 计算2... 65536是2的16次方:65536=2⁶ 65536是256的2次方:65536=256 6553...
小程序支付时提示:appid和... [Q]小程序支付时提示:appid和mch_id不匹配 [A]小程序和微信支付没有进行关联,访问“小...
pycparser 是一个用... `pycparser` 是一个用 Python 编写的 C 语言解析器。它可以用来解析 C 代码并构...
微信小程序使用slider实现... 众所周知哈,微信小程序里面的音频播放是没有进度条的,但最近有个项目呢,客户要求音频要有进度条控制,所...
Apache Doris 2.... 亲爱的社区小伙伴们,我们很高兴地向大家宣布,Apache Doris 2.0.0 版本已于...
python清除字符串里非数字... 本文实例讲述了python清除字符串里非数字字符的方法。分享给大家供大家参考。具体如下: impor...