1.创建Django项目
django-admin startproject test1 创建项目
python manage.py startapp book 创建子应用
2.注册子应用
1.应用名字 ”book“
2.book.apps.BookConfig
3.model中数据库得迁移
python manage.py makemigrations 生成迁移文件
python manage.py migrate 迁移到数据库中生成表
4.创建超级管理员
python manage.py createsuperuser
5.注册模型使后台可以管理数据库
1.在admin中加入admin.site.register(BookInfo)
2.在模板model中重写_str_(self):
def __str__(self):
return self.name
6.masql数据库的配置及使用
(1)在setting中修改配置信息
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'books',
'USER': 'root',
'PASSWORD': 'wodeshijie',
'HOST': '39.106.101.67',
'PORT':3306,
}
}
(2)在项目__int__中添加
import pymysql
pymysql.install_as_MySQLdb()
7.利用模型类保存数据到数据库
(1)book = BookInfo(
name = 'python',
pub_data='2020-02-01'
)
book.save()
(2)BookInfo.objects.create(
name ='java',
pub_data = '2020-01-02'
)
8.利用模型类更新(修改)数据到数据库
(1)查询更新: book=BookInfo.objects.get(id=1)
book.readcount=20
book.save()
(2)查询更新: BookInfo.objects.filter(id=1).updata(readcount=100,
commentcount=200)
9.利用模型类删除数据到数据库
(1)查询删除 book= BookInfo.objects.get(id=4)
book.delete()
(2)直接删除 BookInfo.objects.filter(id=6).delete()
10.数据库的基本查询操作
(1)get()查询 book=BookInfo.objects.get(id=1)
查询出不存在的数据抛出异常
(2)all()查询 BookInfo.objects.all()查询所有的结果
(3)count()统计结果 BookInfo.objects.all().count()
BookInfo.objects.count()
(4) filter()查询 筛选,过滤返回n个结果
BookInfo.objects.filter()
(5)exclude 排除符合条件剩下的结果,相当于不包含
BookInfo.objects.exclude()
(6)两个属性的比较 F对象
eg:查询阅读量大于评论量的图书
from django.db.models import F
BookInfo.objects.filter(readcount__gte=F('commentcount'))
(7) Q对象 或Q()|Q() 并且 Q()&Q() not ~Q()
eg:查询id大于二或者阅读量大于20的书籍
BookInfo.objects.filter(Q(id__gt>2)|Q(readcount__gt>20))
eg:查询id不为3的
BookInfo.objects.filter(~Q(id=3))
11.数据库的聚合
from django.db.models import Sum,Avg,MaX,Min,Count
BookInfo.objects.aggregate(Sum('readcount'))
12.排序
BookInfo.objects.filter( ).order_by('readcount')
默认升序排列
改为降序 加负号
BookInfo.objects.filter( ).order_by('-readcount')
13. 数据库关系查询
eg:查询书籍为1的所有人物信息
book = BookInfo.objects.get(id=1)
book.peopleinfo_set.all()
eg: 根据人物查询书籍
person = PeopleInfo.objects.get(id=1)
person.book.name
eg:查询人物为郭靖的图书信息
BookInfo.objects.filter(peopleinfo__name='郭靖')
eg:查询书名为天龙八部的人物信息
PeopleInfo.object.filter(book__name='天龙八部·')
14.数据库的分页
from django.core.paginator import Paginator
book = BookInfo.objects.all()
p = Paginator(books,2)
# 获取第一页的数据
book_page = p.page(1)
book_page.object_list
15. reverse的使用,反向解析
通过name来动态获取路径
如果没有namespace则可以通过name获取reverse(name)
如果有namespace则可以通过namespace:name获取reverse(namespace:name)
16. 路由的url的配置
接收get请求参数 url(r'^index/(?P<name>.*)/(?P<name1>.*)/$', index)
接受get请求的参数
quert_params= request.GET
quert_params.get('name')
quert_params['name'] 得到一个值
quert_params.getlist('name')得到所有值
17. JSON数据转换
json.dumps 将字典转换为json数据
json.loads 将json转换为字典
18. redirect()重定向
跳转到指定页面
19. 设置cookie
1.判断有无cookie
2.获取用户名
username = request.GET.get('username')
3.设置cookie
response = HttpResponse('set_cookie')
response.set_cookie('username',username,max_age=3600) # max_age过期时间3600秒
4.返回相应
return response
20. 得到cookie
cookie = request.COOKIES
username= cookie.get('username')
return HttpResponse('get_cookie')
21. session的设置
user_id = 6666
request.session['user_id']=user_id# 设置在数据库中
22. 获取session
user_id = request.session['user_id']
user_id = request.session.get('user_id')
23. 过滤器
{{ birthday|data:'Y年 m月 d日' }}
常用函数 data 日期
safe 转义
default:"我就是默认值"
length 返回长度
24.模板继承
{% block header %}
<h1>顶部</h1>
{% endblock header %}
{% extends 'base.html' %}
25. jinja2模板的使用
没有forloop 改为loop
过滤器使用 data(brithday)
26. Git仓库的使用
1.get status 在工作区进行工作
2.get add . 提交到暂存区
3.get status 查看记录
4. git commit -m '版本优化' 提交到仓库
1.设置仓库的信息
初始化仓库 git init
设置仓库的信息 git config user.name lizhichao
git config user.email [email protected]
跟踪所有文件 git add.
2.版本回退 git reset --hard HEAD^ 回退一个版本
HEAD^^回退2个版本
HEAD~1 回退一个版本
HEAD~10回退是个版本
3.显示所有版本信息 git reflog
git reset --hard 版本编号 回归到任何一个版本
4.将工作区的代码进行撤销 git checkout 文件名
撤销暂存区的代码 got reset HEAD 文件名
5.克隆远程仓库到本地 git clone https://github.com/wodeshijie1/wode.git
git push 提交到仓库
git pull 更新仓库
6.设置tag版本
设置 git tag -a v1.0 -m 'version1.0'
推送 git push origin v1.0
删除 git tag -d v1.0
远程删除 git push origin --delete v1.0
7.创建分支
查看分支 git branch
创建分支 git checkout -b pay
切换分支 git checkout master
合并分支 git merge pay
删除分支 git branch -D pay
8.SSH配置
生成公钥ssh-keygen -t rsa -C "[email protected]"
27.设置session
设置session request.session['name']='itheima'
删除session del request.session['name']
得到session request.session.get('name')
删除所有的senssion request.session.clear()
把数据库中的key也删除 request.session.flush()
设置过期时间 request.session.set_expiry(10)