模型:
任何应用程序的基本,不管是不是Web应用,都是它所展现、手机和修改的信息。因此,若将应用程序分层,模型(model)将是最底层的一层,它是基础,视图和末班可以根据数据进出模型的方式以及表现的形式任意替换,但模型却相对稳定得多。
从设计整个Web应用的角度来说,模型可能是最容易领会却也是最难掌握的部分。在面向对象的系统里对一个现实问题进行建模相对来说通常不难,但是对大流量的网站来说,最符合实际的模型却不一定总是最高效的
模型里有许多潜在的陷阱,其中一个就是在应用程序部署后修改模型的代码。虽然表面上你“只是在修改代码”,但实际上确实在修改底层的数据库模式,这经常会对已经存储的数据库里的数据产生不良的副作用。后面会讲到。
数据库配置:
这里只讲连接mysql数据库,其他数据库配置可自行百度:
HelloWorld/HelloWorld/settings.py
要想使用模型,必须先创建app
django-admin startapp TestModel
成功创建后目录如下
在settings.py添加:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'TestModel',
]
接下来我们创建模型,在HelloWorld/TestModel/models.py中输入如下
from django.db import models
# Create your models here.
class Book(models.Model):
author = models.CharField(max_length=50, verbose_name="作者")
title = models.CharField(max_length=50, verbose_name="书名")
在命令行中执行
$ python manage.py migrate # 创建表结构
$ python manage.py makemigrations TestModel # 让 Django 知道我们在我们的模型有一些变更
$ python manage.py migrate TestModel # 创建表结构
看见上图,表示数据库表已经创建好了
这个时候我们再创建一个操作数据库的视图:
在views.py 文件下输入以下内容:
from django.http import HttpResponse
from django.shortcuts import render
# Create your views here.
from TestModel.models import Book
def add_book(request):
book = Book(author="张三", title="张三的幸福生活")
book.save()
return HttpResponse("<p>书刊添加成功!</p>")
在urls.py文件添加:
urlpatterns = [
path('admin/', admin.site.urls),
path(r'hello', view.hello),
path(r'addBook', views.add_book),
]
启动服务器python manage.py runserver 0.0.0.0:8000
访问http://127.0.0.1:8000/addBook,如下:
书刊添加成功,查看数据库,数据库新增了一条数据