Python Django 基本流程

思维导图:
在这里插入图片描述

需要的可以去百度云盘下载
链接:https://pan.baidu.com/s/1WLTeNCnH5BifCX6dCxJXsA

饭一口口吃,路一步步走,虽然很菜,但也在前进。
在这里插入图片描述
在这里插入图片描述


以下只是大概个笔记

一、基本操作

1.1 项目创建

终端创建项目:django-admin startproject project
在这里插入图片描述

目录层级说明:
manage.py(一个命令行工具,可以使我们用多种方式对Django项目进行交互)
projecct目录(
__init__py,一个空文件,它告诉Python这个目录应该被看做一个python包
settings.py,项目的配置文件 (通过DATABASES选项进行数据库配置)
urls.py,项目的URL声明
wsgi.py,项目与WSGI兼容的Web服务器入口

1.2 数据库配置

  • Python 3.x 安装的是PyMySQL

  • 在__init__.py写入两行代码
    import pymysql
    pymysql.install_as_MySQLdb()

  • 在setting.py配置数据库
    在这里插入图片描述

1.3 创建应用

  • 在一个项目中可以创建多个应用,每个应用进行一种业务处理
  • 打开黑屏终端进入01-sunck目录下的project目录
    cmd》python manage.py startapp myApp
    执行manage.py这个文件
    startapp 表示创建应用
    myApp 表示应用名

出现很长的报错信息并且最后两行提示:
raise ImproperlyConfigured(‘mysqlclient 1.3.13 or newer is required; you have %s.’ % Database.version)
django.core.exceptions.ImproperlyConfigured: mysqlclient 1.3.13 or newer is required; you have 0.9.3.

解决方法:找到Python安装路径下的
Python37\Lib\site-packages\django\db\backends\mysql\base.py文件
将文件中的如下代码注释

在这里插入图片描述

  • myApp目录说明
    在这里插入图片描述
    admin是配置站点的
    models是模型
    views是视图

1.4 激活应用

在settings.py文件中,将myApp应用加入到INSTALLED_APPS选项中
在这里插入图片描述

1.5 定义模型(和数据库交互)

  • 概述:有一个数据库表,就对应一个模型
  • 在models.py下定义模型,模型其实就是一个类,类里的属性对应表的字段
from django.db import models  引入,因为后面 模型类要继承models.Model类
  • 创建模型类
    在这里插入图片描述
  • 说明:不需要定义主键,在生成时自动添加,并且值为自动增加

1.6 数据库中生成数据表

  • 重新迁移要删掉已生成的迁移文件0001_initial.py,还有数据库也要删掉。然后在makemigrations。如果在Model添加一个新的,直接makemigrations,然后执行迁移OK
  • 生成迁移文件
    cmd》python manage.py makemigrations

在这里插入图片描述
仅在migrations目录下生成一个迁移文件0001_initial.py,此时数据库中还没有生成数据库

  • 执行迁移(相当于执行sql语句创建数据表)
    ❤cmd》python manage.py migrate
    在这里插入图片描述
    在这里插入图片描述

1.7 测试数据操作

  • 进入到Python shell
    cmd》python manage.py shell

1.7.1 引入包

from myApp.models import Grades,Students
from django.utils import timezone
from datetime import *

1.7.2 查询所有数据

类名.objects.all()
eg:Grades.objects.all() 通过模型类查找

1.7.3 添加数据

本质:创建一个模型类的对象实例
grade1 = Grades()
grade1.gname = “python04”
grade1.gdate = datetime(year=2020,month=6,day=30)
grade1.ggirlnum = 3
grade1.gboynum = 70
grade1.save()
在这里插入图片描述
在这里插入图片描述

1.7.4 修改后

(后续若有python文件修改了,需要退出,重新python manage.py shell进入)
重新导入文件
from myApp.models import Grades,Students
from django.utils import timezone
from datetime import *
在这里插入图片描述
Grades.objects.all()
在这里插入图片描述

1.7.5 查看某个对象

类名.objects.get(pk=2)

grade2 = Grades()
grade2.gname = “python05”
grade2.gdate = datetime(year=2020,month=6,day=30)
grade2.ggirlnum=1
grade2.gboynum=50
grade2.save()

如何只查询某个对象,而不是Grades.objects.all()
Grades.objects.get(pk=2)

1.7.6 修改数据

模型对象.属性 = 新值

grade2.gboynum = 60
grade2.save()

1.7.7 删除数据

模型对象.delete()
grade2.delete()
注意:物理删除,数据库中的表里的数据被删除了

1.7.8 关联对象

grade1 = Grades.objects.get(pk=1)

stu = Students()
stu.sname = “何文彬”
stu.sgender = True
stu.sage = 22
stu.scontend = “我叫果子哥”
stu.sgrade = grade1
stu.save()
在这里插入图片描述
在这里插入图片描述
(1)获得关联对象的集合
需求:获取python04班级的所有学生

  • 对象名.关联的类名小写_set.all()
    获得关联对象的集合:grade1.students_set.all()

(2)通过关联对象直接创建
需求:创建python04学生 曾志伟

stu3 = grade1.students_set.create(sname=u'曾志伟',sgender=True,scontend=u'我叫曾志伟',sage=45)

猜你喜欢

转载自blog.csdn.net/qq_39578545/article/details/107968460
今日推荐