django基础笔记汇总

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)

猜你喜欢

转载自blog.csdn.net/w5025/article/details/107440820