首页 > 其他 > 详细

Django笔记

时间:2018-07-02 20:01:19      阅读:222      评论:0      收藏:0      [点我收藏+]

Django:
*各语言通用web架构MVC
Model(模型): 数据存储层, 管理数据的.
View(视图): 表现层, 展示页面内容.
Controller(控制器): 业务逻辑层, 中间调节人.

*Python的web架构MTV(各模块与MVC只是名字叫法不一样, 功能是一样的)
Model(模型): 数据存储层.
Templete(模板): 表现层.
View(视图): 业务逻辑层.

*安装Django: pip install Django==1.11.4

*Django创建项目目录: 创建文件夹"Django项目" → 黑屏终端cd到该目录 → 输入命令django-admin startproject 名称

*查看目录层级: tree . /F
manage.py: 一个命令行工具, 可以使我们用多种方式对Django项目进行交互.
project目录: __init__.py: 一个空文件, 它告诉python这个目录应该被看作一个python包.
settings.py: 项目的配置文件.
urls.py: 项目的URL声明.
wsgi.py: 项目与WSGI兼容的web服务器入口.

*创建项目
1.设计表结构
a.班级表结构
表名: grades
字段: 班级名称(gname), 女生总数(ggirlnum), 男生总数(gboynum), 是否删除(isDelete)
b.学生表结构
表名: students
字段: 学生姓名(sname), 学生性别(sgender), 学生年龄(sage), 学生简介(scontent), 所属班级(sgrade), 是否删除(isDelete)
2.配置数据库
注意: Django默认使用SQLite数据库.
如何配置: 在settings.py文件中, 通过DATABASES选项进行数据库配置.
配置MySQL
python3.x安装的是PyMySQL
在__init__文件中写入两行代码, 不写会报错: import pymysql 和 pymysql.install_as_MySQLdb()
格式: DATABASES = {
‘default‘: {
‘ENGINE‘ : ‘django.db.backends.mysql‘
‘NAME‘ : ‘数据库名‘
‘USER‘ : ‘用户名‘
‘PASSWORD‘ : ‘数据库密码‘
‘HOST‘ : ‘数据库服务器ip‘
‘PORT‘ : ‘端口‘,
}
}
3.创建应用
在一个项目中可以创建多个应用, 每个应用进行一种业务处理.
打开黑屏终端进入"Django项目"目录下的project目录.
执行命令 python manage.py startapp myApp.
myApp目录说明
admin.py: 站点配置
model.py: 模型
view: 视图
4.激活应用
在settings.py文件中, 将myApp应用加入到INSATLLED_APPS选项中.
5.定义模型
概述: 有一个数据表, 就对应有一个模型.
在models.py文件中定义模型: class Grades(models.Model)
class Students(models.Model)
说明: 不需要定义主键, 主键会在生成时自动添加, 并且值为自动增加.
6.在数据库中生成数据表
生成迁移文件并执行迁移: 黑屏终端cd到"Django项目"目录下的project目录,
依次执行python manage.py migrate
python manage.py makemigrations myApp
python manage.py sqlmigrate myApp 0001
python manage.py migrate
7.测试数据操作
黑屏终端cd到"Django项目"目录下的project目录, 执行命令 python manage.py shell
引入包: from myApp.models import Grades,Students
查询所有数据: 类名.objects.all()
添加数据
本质: 是创建一个模型类的实例对象
添加一个班级
>>>grade1 = Grades()
>>>grade1.gname = "python04"
>>>grade1.ggirlnum = 3
>>>grade1.gboynum = 70
>>>grade1.save() # 保存提交到数据库, 创建或修改数据最后都要.save()提交到数据库.
添加一个学生
>>>stu1 = Students()
>>>stu1.sname = "Alick"
>>>stu1.sgender = True
>>>stu1.sage = 25
>>>stu1.scontent = "我是Alick"
>>>stu1.sgrade = grade1 # 外键关联
>>>stu1.save()
查看具体某一个数据: >>>Grades.objects.get(pk=2) # pk=2是主键为2的意思
修改数据
>>>grade1.gboynum = 60
>>>grade1.save()
删除数据(物理删除, 数据库中的表里的数据被删除了)
>>>grade1.delete()
8.关联对象
获得关联对象的集合: 对象名.关联的类名小写_set.all()
例: grade1.students_set.all() # 获取python04班级所有的学生.
需求: 创建学生"Tom"属于python04班级
==> stu2 = grade1.students_set.create(sname="Tom", sgender=True, scontent="I‘m Tom", sage=28) # 这里是直接添加到数据库中了, 不需要save.

Django笔记

原文:https://www.cnblogs.com/chenbin93/p/9255326.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!