Django从头学----学习笔记1(创建项目,添加数据)
1、MVT
- Django是一款python的web开发框架
- 与MVC有所不同,属于MVT框架
- m表示model,负责与数据库交互
- v 表示view,是核心,负责接收请求、获取数据、返回结果
- t 表示template,负责呈现内容到浏览器
2、安装Django
在windows终端输入:pip install Django==1.11.4(如果不输入等号后边的,默认安装最新版本)
3、创建项目
在合适位置创建一个目录
在黑屏终端进入目录下
输入:django-admin startproject project project表示创建的项目名字,可以改成自己的项目名字
创建成功后可以查看创建出来的项目文件 tree . /F (中间有空格)
manage.py 一个命令行工具,可以使我们用多种方式对Django项目进行交互
__init__.py 一个空文件,它告诉python这个目录应该被看做一个python包
settings.py 项目的配置文件
urls.py 项目的URL声明
wsgi.py 项目与WSGI兼容的Web服务器入口
4、基本操作
1、设计表结构
2、配置数据库:Django默认使用的是SQLite数据库
在settings.py中,通过DATABASES选项进行数据库配置,配置成mysql。
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': 'test', 数据库名 'USER':'root', 'PASSWORD':'123456', 'HOST':'localhost', 'PORT':'3306', } }
在__init__.py 文件中添加如下代码:
import pymysql pymysql.install_as_MySQLdb()
3、创建应用
在一个项目中可以创建多个应用,每个应用进行一种业务
打开终端,进入项目目录下的project
执行:python manage.py startapp myApp(myApp是自己起的名字)
创建成功后会出现一个myApp文件。
4、**应用
在settings.py文件中,将myApp应用加入到INSTALLED_APPS选项中
INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'myApp' #添加的自己的应用 ]
5、定义模型
有一个数据表,就对应一个模型。在models.py文件中定义模型
from django.db import models # Create your models here. class Grades(models.Model): gname = models.CharField(max_length=20) gdate = models.DateTimeField() ggirlnum = models.IntegerField() gboynum = models.IntegerField() isDelete = models.BooleanField() class Students(models.Model): sname=models.CharField(max_length=20) sgender=models.BooleanField(default=True) sage=models.IntegerField() scontend=models.CharField(max_length=20) isDelete=models.BooleanField(default=False) #设置关联外键 sgrade=models.ForeignKey('Grades')
6、在数据库中生成数据表
1、生成迁移文件
在项目下的黑屏终端执行 python manage.py makemigrations
执行结束后 后在项目中migrations下生成一个迁移文件,即0001_inital.py。(此时数据库中还没有生成数据表)
2、执行迁移
执行 :python manage.py migrate 相当于执行sql语句创建表,完成后可以到数据库中能够查看生成的表
3、测试数据操作
进入终端,执行:python manage.py shell
引入包
from myApp.models import Grades,Students (Grades,Students是我创建的两个表)
from django.utils import timezone
from datetime import *
查询所有数据 : 类名.objects.all()
Grades.objects.all()
4、添加数据
grade1=Grades()
grade1.gname='zyx'
grade1.gdate=datetime(year=2018,month=8,day=1)
grade1.ggirlnum=10
grade1.gboynum=40
grade1.save() 只有save()后数据库中才会有数据
这样数据保存成功,数据库中也会有数据了。