Django模型主要包含:
- 模型配置
-
数据的增删改
-
增:
book = BookInfo() book.save()
和BookInfo.objects.create()
-
删:
book.delete()
和BookInfo.objects.get().delete()
-
改:
book.name='xxx' book.save()
和BookInfo.objects.get().update(name=xxx)
-
-
数据的查询
-
基础查询
-
F对象和Q对象
-
关联查询
-
查询集QuerySet
-
1、MVT图解
2、项目准备
2.1.创建项目 【首先进入虚拟环境】
django-admin startproject bookmanager
2.2.创建应用
python manager.py startapp book
2.3.更换python解释器:按需选择
# 进入指定虚拟环境
which python
# python2
/home/python/.virtualenvs/py_django/bin/python
# python3
/home/python/.virtualenvs/py3_django/bin/python
2.4.安装应用
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#添加子应用
'book.apps.BookConfig'
]
2.5.本地化
#设置中文
LANGUAGE_CODE = 'zh-Hans'
#亚洲上海时区
TIME_ZONE = 'Asia/Shanghai'
2.6.模板路径
-
在应用同级目录下,创建
templates
模板文件夹TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [os.path.join(BASE_DIR,'templates')], 'APP_DIRS': True, 'OPTIONS': { 'context_processors': [ 'django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages', ], }, }, ]
2.7.项目中匹配urls
-
正则 : 路径只要不是
admin/
就算匹配成功。并包含到应用中的urls.py
from django.conf.urls import url,include from django.contrib import admin urlpatterns = [ url(r'^admin/', admin.site.urls), #正则为:只要不是 admin/ 就算匹配成功 url(r'^',include('book.urls')) ]
2.8.应用中匹配urls.py
- 应用中创建
urls.py
-
正则 : 路径中包含
booklist/
,就调用视图中对应的bookList
函数from django.conf.urls import url from book.views import bookList urlpatterns = [ # 匹配书籍列表信息的URL,调用对应的bookList视图 url(r'^booklist/$',bookList) ]
2.9.准备视图
# 定义视图:提供书籍列表信息
def bookList(request):
return HttpResponse('OK!')
2.10.开启服务器, 测试项目
# 进入项目文件中, 开启项目对应的服务器
python manage.py runserver
# 浏览器中输入网址
http://127.0.0.1:8000/booklist/
3、项目配置
在settings.py中保存了数据库的连接配置信息,Django默认初始配置使用sqlite数据库。
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
3.1使用MySQL数据库首先需要安装驱动程序
pip install PyMySQL
3.2 在Django的工程同名子目录的__init__.py文件中添加如下语句
import pymysql
pymysql.install_as_MySQLdb()
【必须优先写这两句话】
作用是让Django的ORM能以mysqldb的方式来调用PyMySQL。
3.3 修改DATABASES配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1', # 数据库主机
'PORT': 3306, # 数据库端口
'USER': 'root', # 数据库用户名
'PASSWORD': 'mysql', # 数据库用户密码
'NAME': 'book' # 数据库名字
}
}
3.4 在MySQL中创建数据库
create database book charset=utf8;
【数据库模型设置好后,还需要迁移数据库(2步骤)。】