了解django

django框架

了解

Python的WEB框架有Django、Tornado、Flask 等多种,Django相较与其他WEB框架其优势为:大而全,框架本身集成了ORM、模型绑定、模板引擎、缓存、Session等诸多功能。

  1. 流程
  2. 基本配置
  3. 路由系统
  4. 视图view
  5. 模板
  6. Model
  7. 中间件
  8. Form
  9. 认证系统
  10. CSRF
  11. 分页
  12. Cookie
  13. Seesion
  14. 缓存
  15. 序列化
  16. 信号
  17. admin

一、流程

在这里插入图片描述

二、基本配置

1.创建django程序
  • 终端命令:django-admin startproject sitename (在当前目录下创建一个Django程序)
  • IDE创建Django程序时,本质上都是自动执行上述命令
其他常用命令:
python manage.py runserver ip:port  	(启动服务器,默认ip和端口为http://127.0.0.1:8000/)
python manage.py startapp appname  	(新建 app)
python manage.py syncdb  		(同步数据库命令,Django 1.7及以上版本需要用以下的命令)
python manage.py makemigrations  	(显示并记录所有数据的改动)
python manage.py migrate  		(将改动更新到数据库)
python manage.py createsuperuser  	(创建超级管理员)
python manage.py dbshell  		(数据库命令行)
python manage.py  			(查看命令列表)
2.程序目录:

在这里插入图片描述

3.配置文件
a.数据库
DATABASES = {
     # 'default': {
     #     'ENGINE': 'django.db.backends.mysql',
     #     # 'ENGINE': 'mysql.connector.django',
     #     "NAME": "django_test",
     #     'USER': 'root',
     #     'PASSWORD': '******',
     #     'HOST': '127.0.0.1',
     #     'PORT': '3306',
     #     'OPTIONS': {
     #          # 'read_default_file': '/path/to/my.cnf',
     #     },
     # }
     'default': {
          'ENGINE': 'django.db.backends.sqlite3',
          'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
         }
 } 

六、model

go提供了一个抽象层(“Model”)来构建和管理Web应用程序的数据。
django中遵循 Code Frist 的原则,即:根据代码中定义的类来自动生成数据库表。
关系对象映射(Object Relational Mapping,简称ORM)。Django提供了一个抽象层(“Model”)来构建和管理

1.创建表

a、基本结构

from django.db import models

class Question(models.Model):
	question_text = models.CharField(max_length=200)
	pub_date = models.DateTimeField('date published')

b、连表结构

一对多:models.ForeignKey(其他表)
多对多:models.ManyToManyField(其他表)
一对一:models.OneToOneField(其他表)

应用场景:【

  • 一对多:当一张表中创建一行数据时,有一个单选的下拉框(可以被重复选择)
    例如:创建用户信息时候,需要选择一个用户类型【普通用户】【金牌用户】【铂金用户】等。(一个班级有多个学生。学生表里有外键存班级id。)
  • 多对多:在某表中创建一行数据是,有一个可以多选的下拉框
    例如:创建用户信息,需要为用户指定多个爱好(一个学生上有多个老师,一个老师带多个学生。)
  • 一对一:在某表中创建一行数据时,有一个单选的下拉框(下拉框中的内容被用过一次就消失了
    例如:原有含10列数据的一张表保存相关信息,经过一段时间之后,10列无法满足需求,需要为原来的表再添加5列数据

to,                         			# 要进行关联的表名
to_field=None,                		 # 要关联的表中的字段名称
on_delete=None,            		 # 当删除关联表中的数据时,当前表与其关联的行的行为
- models.CASCADE,   		删除关联数据,与之关联也删除
- models.DO_NOTHING,	删除关联数据,引发错误IntegrityError
- models.PROTECT,		删除关联数据,引发错误ProtectedError
- models.SET_NULL,		删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空)
- models.SET_DEFAULT,	删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值)
- models.SET,			删除关联数据,
a. 与之关联的值设置为指定值,设置:models.SET(值)
b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值