Python Django总结①

14 篇文章 0 订阅
12 篇文章 0 订阅


黑马就业班Django框架视频总结①

1. 环境

Django 项目Debug 环境配置

python manage.py runserver --settings=EMCRP.settings_local
PYTHONUNBUFFERED=1;DJANGO_SETTINGS_MODULE=haumea.settings_local

在这里插入图片描述

修改admin 密码

方法一 : 这个方法是用过shell命令方式对密码进行修改的,使用如下的命令:

// 进入pod中修改
k exec -it dev-podname-haumea-759697c57-95vwz /bin/bash

python manage.py shell  

from django.contrib.auth.models import User        

user =User.objects.get(username='admin')

user.set_password('new_password')  

user.save()

方法二 : 在Terminal中执行:python manage.py changepassword your_name(其中“your_name”为你要修改密码的用户名),根据提示内容修改即可。

 python manage.py changepassword 

方法一有密码强度验证,方法二不会校验密码强度。

Django workon工作环境

1. 安装virtualenv
    pip install virtualenv
2. 安装虚拟环境管理工具
    pip install virtualenvwrapper
    pip install virtualenvwrapper-win #windows环境下使用
3. 创建目录用来存放虚拟环境
    mkdir $HOME/.virtualenvs
4. 在~/.bashrc中添加下面两行命令
    export WORKON_HOME=$HOME/.vritualenvs
    source /usr/local/bin/virtualenvwrapper.sh
5. 运行
    source ~/.bashrc
6. 创建python虚拟环境
   mkvirtualenv + [虚拟环境名称]
7. 进入虚拟环境
  workon + [虚拟环境名称] 
8. 退出虚拟环境
  deactivate +[虚拟环境名称]
9.删除(慎用)先退回虚拟环境
  rmvirtualenv + [虚拟环境名称]
10.创建python2版本开发
  mkvirtualenv -p /usr/bin/python2.7 [虚拟环境名称] 
11. 创建python3版本开发
  mkvirtualenv -p /usr/bin/python3 [虚拟环境名称]
  
可能有的安装python3虚拟环境的报错:
  Running virtualenv with interpreter /usr/bin/python3.6
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/virtualenv.py", line 20, in <module>
    import distutils.spawn
ModuleNotFoundError: No module named 'distutils.spawn'

报错原因:
  No module named distutils.spawn virtualenv python3
使用virtualenv指定python3时报错,错误为:
No module named ‘distutils.spawn’

 
解决办法:
安装python3-distutils
sudo apt-get install python3-distutils

  • 创建Python虚拟环境

  • virtualenv --no-site-packages test_django

    cd test_django\Scripts
    activate  // 使用激活  
    deactivate.bat  退出
    
  • 安装依赖库

    安装依赖:pip install -r requirements.txt  -i https://pypi.tuna.tsinghua.edu.cn/simple
    
  • 虚拟环境管理工具:virtualenvwrapper-win

    安装:pip install virtualenvwrapper-win
    说明:默认会将虚拟环境保存在C:\Users\用户名\Envs目录下
    查看虚拟环境:lsvirtualenv
    创建虚拟环境:mkvirtualenv
    启动虚拟环境:workon 虚拟环境名
    退出虚拟环境:deactivate.bat
    

window配置虚拟环境

2. django创建项目

2.1 虚拟环境目录下 创建项目与 应用

django-admin startproject test1
cd test
python manage.py startapp booktest

在这里插入图片描述

2.2 文件说明

  • test1:
    在这里插入图片描述
  • booktest
    在这里插入图片描述
    在这里插入图片描述

2.3 启动文件

  • 对应用进行注册
    -在这里插入图片描述

  • 启动文件

    python manage.py runserver
    

    在这里插入图片描述

2. ORM

2.1 模型类设计

from django.db import models

# Create your models here.

# 图书类
class BookInfo(models.Model):
    '''图书模型类'''
    btitle = models.CharField(max_length=20)
    bpub_date = models.DateField()

在这里插入图片描述

2.2 生成与执行迁移文件

python manage.py makemigrations
python manage.py migrate

在这里插入图片描述

2.3 数据库设置

  • 自带的小型数据库
    在这里插入图片描述
  • 数据库文件db.sqlite3
    在这里插入图片描述

2.4 操作数据表

在这里插入图片描述

3. 后台管理

在这里插入图片描述

LANGUAGE_CODE = 'zh-hans' #使用中文
python manage.py createsuperuser

后台

model.py

from django.contrib import admin
from booktest.models import BookInfo, HeroInfo

# Register your models here.
# 自定义模型管理类
class BookInfoAdmin(admin.ModelAdmin):
    '''图书模型管理类'''
    list_display = ['id', 'btitle', 'bpub_date']  # 使后台数据按行显示

class HeroInfoAdmin(admin.ModelAdmin):
    '''图书模型管理类'''
    list_display = ['hname', 'hgender', 'hcomment', 'hbook']  # 使后台数据按行显示

# 注册模型类
admin.site.register(BookInfo, BookInfoAdmin)
admin.site.register(HeroInfo, HeroInfoAdmin)

在这里插入图片描述
在这里插入图片描述
外键关联表
在这里插入图片描述

4. 操作MYSQL数据库

设置

settings.py:

DATABASES = {
    'default': {
        # 'ENGINE': 'django.db.backends.sqlite3',
        # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'bj18',
        'USER': 'root',
        'PASSWORD': '123456',
        'HOST': 'localhost',
        'PORT': 3306,
    }
}

init.py
在这里插入图片描述

字段类型与选项

字段类型与选项

class PeopleInfo(models.Model):
    name = models.CharField(max_length=20) #人物姓名
    gender = models.BooleanField(default=True) #人物性别
    description = models.CharField(max_length=20) #人物描述
    isDelete = models.BooleanField(default=False) #逻辑删除
    book = models.ForeignKey(BookInfo) # 外键约束,人物属于哪本书
    pub_date = models.DateField(null=True) #日期
    readcount = models.IntegerField(default=0) #阅读量
    commentcount = models.IntegerField(default=0) #评论量
    isDelete = models.BooleanField(default=False) #逻辑删除
 
    # 元类信息 : 修改表名
    class Meta:
        db_table = 'peopleinfo'

class PeopleInfo(models.Model):
name = models.CharField(max_length=20) #人物姓名
gender = models.BooleanField(default=True) #人物性别
description = models.CharField(max_length=20) #人物描述
isDelete = models.BooleanField(default=False) #逻辑删除
book = models.ForeignKey(BookInfo) # 外键约束,人物属于哪本书
pub_date = models.DateField(null=True) #日期
readcount = models.IntegerField(default=0) #阅读量
commentcount = models.IntegerField(default=0) #评论量
isDelete = models.BooleanField(default=False) #逻辑删除

# 元类信息 : 修改表名
class Meta:
    db_table = 'peopleinfo'

在这里插入图片描述
在这里插入图片描述

修改models

在这里插入图片描述

查询![

在这里插入图片描述
process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80Mzc0NjQzMw==,size_16,color_FFFFFF,t_70)

在这里插入图片描述

F对象 类属性之间比较

在这里插入图片描述

Q对象 条件之间比较

在这里插入图片描述

sum

在这里插入图片描述

查询集

在这里插入图片描述
在这里插入图片描述

5. 模型

from django.db import models

# Create your models here.

# 图书类
class BookInfo(models.Model):
    '''图书模型类'''
    btitle = models.CharField(max_length=20) #图书名称
    bpub_date = models.DateField()# 出版日期
    bread = models.IntegerField(default=0)# 阅读量
    bcomment = models.IntegerField(default=0) #评论量
    idDelete = models.BooleanField(default=False) #删除标记

    # def __str__(self):
    #     # 返回书名
    #     return self.btitle


class HeroInfo(models.Model):
    # 英雄姓名,不唯一,可以有重名的英雄
    hname = models.CharField(max_length=50, unique=False)
    # 英雄性别,默认False为男性,也可以设为Integer类型,0或者1
    hgender = models.BooleanField(default=False)
    isDelete = models.BooleanField(default=False)
    # 英雄的描述
    hcontent = models.CharField(max_length=500)
    # 图书与英雄的关系为一对多的关系,所以属性定义在英雄的模型类中
    hbook = models.ForeignKey('BookInfo', on_delete=models.CASCADE)

    # def __str__(self):
    #     # 返回书名
    #     return self.hname

class NewType(models.Model):
    type_name = models.CharField(max_length=20)
    new_type = models.ManyToManyField('NewsInfo')

class NewsInfo(models.Model):
    title = models.CharField(max_length=128) #新闻标题
    pub_date = models.DateTimeField(auto_now_add=True) #发布时间
    content = models.TextField() #信息内容

# 员工信息表 一对一
class EmployBasicInfo(models.Model):
    name = models.CharField(max_length=20)
    gender = models.BooleanField(default=False)
    age =models.IntegerField()
    employee_detail = models.OneToOneField('EmployeeDetailInfo')

# 员工详细信息表
class EmployeeDetailInfo(models.Model):
    addr = models.CharField(max_length=256) #地址
    #教育经历
    employee_basic = models.OneToOneField('EmployBasicInfo')

在这里插入图片描述

1. 关联查询

在这里插入图片描述
在这里插入图片描述

2. 自关联

在这里插入图片描述

3. Manager

在这里插入图片描述
在这里插入图片描述

3.1 自定义的Manager对象

  • 定义一个类查找与保存数据
    在这里插入图片描述

3.2 继承Manager对象

在这里插入图片描述

  • 保存数据
    在这里插入图片描述
  • self.model
    在这里插入图片描述

总结

在这里插入图片描述

4. 元选项

  • 指定表明
    在这里插入图片描述
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值