运行环境:pycharm,mac,mysql,版本不过多的简述:
1.Django的安装:我直接pip3 install Django,如果不能正常安装,网上资料很多。
2.创建Django项目,主要有2种方式:(1)pycharm界面创建,(2)Django-admin startproject 项目名: 在终端指定的文件夹创建
3.创建完成项目后,进行一些基础的配置
1.settings:templates文件夹的位置,一般不需要修改
2.静态文件:
1. STATIC_URL --> 静态文件夹的别名(在HTML文件中用的)
2. STATICFILES_DIRS --> 静态文件夹的真正路径
例:
STATIC_URL = '/static/'
STATIC_DIRS = [
os.path.join(BASE_DIR,'static')
]
3.注释掉csrf
4.Django连接数据库的信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'Django',
'HOST': '127.0.0.1',
'PORT': 3306,
'USER': 'root',
'PASSWORD': 'root',
}
}
4.views.py一般用来定义函数
1. 基本必备三件套
from django.shortcuts import HttpResponse, render, redirect
1. HttpResponse("要返回的内容") --> 通常用于直接返回数据
2. render(request, "html文件", {"k1": v1}) --> 返回一个HTML文件或者打开文件进行字符串替换
3. redirect("URL") --> 告诉用户的浏览器去访问其他的URL
2. request相关
1. request.method --> 查看请求的方法
2. request.POST --> 获取POST请求的数据
5.ORM的使用
类:::::数据表
对象::::数据行
属性::::字段
功能:ORM操作数据行、数据表
Django里的ORM的使用:
1.手动创建数据库
2.在settings.py里面,配置数据的连接信息
DATABASES= {
'default':{
'ENGINE':'django.db.backends,mysql',
'NAME':'python',
'HOST','127.0.0.1',
'USER':'',
'PASSWORD':'',
}
}
3.在项目/__init__.py告诉Django用pymysql模块代替MySQLdb来连接MYSQL数据库
import pymysql
pymysql.install_as_MySQLdb()
4.在app/models.py里面定义类
class Publisher(models.Model):
id = models.AutoField(primary_key=True) # 自增的ID主键
# 创建一个varchar(64)的唯一的不为空的字段
name = models.CharField(max_length=64, null=False, unique=True)
5.执行命令
1.python3 manage.py makemigrations -->把models.py里面的更改记录起来
2.python3 manage.py migrate -->把更改翻译成SQL语句,去数据库执行
注意:执行第5步命令的时候,检查app是否添加到了settings里面
创建app的命令 : python manage.py startapp xxx
6.表和表之间的关系
1.一对多(出版社和书)
publisher = models.ForeignKey(to="Publisher")
数据库中会给publisher自动加一个id----》publisher_id
2.多对多
books = models.ManyToManyField(to="Book")
7.表单的增删改查
1.单表的增删改查
增
models.Publisher.objects.create("xx出版社")
查
models.Publisher.objects.get(id = 1)
models.Publisher.objects.get(name="xxx")
改
obj = models.Publisher.objects.get(id = 1)
obj.name = "xxx"
obj.save()
删
models.Publisher.objects.get(id=1).delete()
两个models的区别:
1.第一个是Django内置的models模块,from django.db import models
2.第二个使我们自己写类的models模块,from app01 import models
2.外键的增删改查
增删查同上
book_obj = models.Book.objects.get(id= 1)
book_obj.publisher.id 和书关联的出版社的id值
book_obj.publisher.name 和书关联的出版社的名称
3.多对多的操作
1.查id为1的作者都写过什么书
author_obj = models.Author.objects.get(id = 1)
author_obj.books.all() -- 和作者关联的索引的书
2.想给作者绑定多本书
author_obj = models.Author.objects