1.所有的命令
下载安装
pip install django==1.11.20 - i 源
创建项目
django-admin startproject 项目名
启动项目
python manage.py runserver # 127.0.0.1:8000
python manag e.py runserver 80 # 127.0.0.1:80
python manage.py runserver 0.0.0.0:80 # 0.0.0.0:80
创建APP
Python manage.py startapp APP名称
数据库迁移
python manage.py makemigrations # 根据models变化生成迁移文件
python manage.py migrate # 将变更记录同步到数据库
2.配置
-
静态文件
STAITC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
]
-
INSTALLED_APPS = [
'app01' 或者 ‘app01.apps.App01Config’
]
-
中间件
注释掉CSRF有关
-
DATABASES
ENGINE: mysql
NAME: 名字
HOST:IP
PORT: 端口
USER: 用户名
PASSWORD: 密码
-
TEMPLATES
DIRS :[ os.path.join(BASE_DIR ,'templates') ]
3.django使用mysql数据库的流程:
-
创建一个mysql数据库
-
数据库的配置:
ENGINE: mysql
NAME: 名字
HOST:IP
PORT: 端口
USER: 用户名
PASSWORD: 密码
-
告诉django使用pymysql连接mysql数据库
在与settings同级目录下的init。py写:
import pymysql
pymysql.install_as_MySQLdb()
-
在app下的models中写类(表):
from django.db import models class Publisher(models.Model): # app01_publisher pid = models.AutoField(primary_key=True) name = models.CharField(max_length=32) # varchar(32) class Book(models.Model): name = models.CharField(max_length=32) pub = models.ForeignKey('Publisher', on_delete=models.CASCADE) class Author(models.Model): name = models.CharField(max_length=32) books = models.ManyToManyField('Book')
-
执行数据库迁移的命令
python manage.py makemigrations # 根据models变化生成迁移文件
python manage.py migrate # 将变更记录同步到数据库
4. request
request.method ——》 GET POST
request.GET ——》 url地址上的参数
request.POST ——》POST请求提交的数据
5. response
HttpResponse("字符串") ——》 页面显示字符串
render(reqeust,'模板的文件名', { k1:v1 }) ——》 一个完整的页面
redirect('要跳转的地址') ——》 重定向 Location: 要跳转的地址
6.ORM
from app01 import models
# 查
models.Publisher.objects.all() # 获取所有的数据 queryset 对象列表
models.Publisher.objects.filter(条件) # 获取所有满足条件的对象 queryset 对象列表
models.Publisher.objects.get(条件) # 获取一个满足条件的对象 对象 无或者多个就报错
models.Publisher.objects.all().order_by('pk') # 排序 升序
pub_obj.pid pub_obj.pk # 主键
pub_obj.name # 名字
book_obj.pk
book_obj.name
book_obj.pub ——》 书籍所关联的出版社的对象
book_obj.pub_id ——》 书籍所关联的出版社的对象pk
author_obj.books ——》 关系管理对象
author_obj.books.all() ——》 作者所关联的书籍对象
author_obj.books.set([ 所关联对象的id, 所关联对象的id,所关联对象的id ])
author_obj.books.set([ 所关联对象, 所关联对象,所关联对象 ])
# 增加
models.Publisher.objects.create(name='xxxx')
# 外键
models.Book.objects.create(name='xxxx',pub=pub_obj)
models.Book.objects.create(name='xxxx',pub_id=pub_obj.pk)
# 多对多
author_obj = models.Author.objects.create(name='xxxx')
author_obj.books.set([ id,id ])
obj = models.Publisher(name='xxxx')
obj.save()
# 删除
models.Publisher.objects.filter(pk=pk).delete()
models.Publisher.objects.get(pk=pk).delete()
# 修改
pub_obj.name ='new name'
pub_obj.save()
book_obj.name = 'new name'
book_obj.pub_id = pub_obj.id
book_obj.pub = pub_obj
book_obj.save()
author_obj.name = 'new name'
author_obj.save()
author_obj.books.set([id ,id])