django 创建笔记
项目的创建:django-admin startproject 项目名
进入虚拟环境
test1
__init__ ;说明是test1的一个python包
settings.py:项目的配置文件
urls.py :进行url路由的配置
wsgi.py:web服务器和Django交互的入口
manage.py:项目的管理文件
一个项目有很多应用组成,每一个应用完成特定的功能
创建应用:python manage.py startapp (名字)booktest
booktest
__init__:说明目录是一个python模块
models.py:写和数据库项目的内容
views.py:接收请求,进行处理,与M和T进行交互,返回应答,定义处理函数,视图函数
tests.py:写测试代码的文件
admin.py:网站后台管理相关的文件
建立应用和项目之间联系,进行应用注册,在settings文件中
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'project_1.apps.Project1Config',#进行应用的注册
]
运行项目:python manage.py runserver
模型类设计
在models.py中设置模型类
必须继承models.Model类
设计BookInfo类
Model.Foreignkey可以创建两个模型类之间一对多的关系,django在生成表的时候,
就会在多的表中创建一列作为外键,建立两个表之间一对多的关系
模型类生成表
生成迁移文件:python manage.py makemigrations
执行迁移文件生成表:python manage.py migrate
通过模型类操作数据表 python manage.py shell
from project_1.models import BookInfo
b = BookInfo()
b.title = '天龙八部'
from datetime import date
b.bpub_date = date(2018,11,21)
b.save()
b2 = BookInfo.objects.get(id=1)
更新
b2.b.bpub_date = date(2019,1,21)
b2.save()
删除
b2.delete()
创建外键时需要设置一个参数on_delete=models.DO_NOTHING
hbook = models.ForeignKey('BookInfo',on_delete=models.DO_NOTHING)
from project_1.models import BookInfo,HeroInfo
c = BookInfo()
c.title = '天龙八部'
from datetime import date
c.bpub_date = date(2018,11,21)
c.save()
h = HeroInfo()
h.hname = '段誉'
h.hgender = False
h.hcomment = '六脉神剑'
h.hbook = c
h.save()
添加数据
h2 = HeroInfo()
h2.hname = '乔峰'
h2.hcomment = '降龙十八掌'
h2.hbook = c
h2.save()
查找:h2.hname
h2.hcomment
h2.hbook_id
查询所有:
HeroInfo.objects.all()
由一查多
b.heroinfo_set.all()
由多查一
h.hook()