Django入门(4)之模型的增删改查数据库
models定义的变量类型
AutoField:一个根据实际ID自动增长的IntegerField,通常不指定,如果不指定,一个主键字段将自动添加到模型中
BooleanField:true/false 字段,此字段的默认表单控制是CheckboxInput
NullBooleanField:支持null、true、false三种值
CharField(max_length=字符长度):字符串,默认的表单样式是 TextInput
TextField:大文本字段,一般超过4000使用,默认的表单控件是Textarea
IntegerField:整数
FloatField:用Python的flo ...
Django入门(3)之视图参数默认值、错误处理、URL的反向解析和使用模型操作数据库
指定用于视图参数的默认值
两个路由指向同一个视图函数,并且在视图函数中给参数设置默认值
在home/urls.py文件中加入一条路径:
123#路由re_path(r'^user/index/(?P<page>[0-9]+)/$', views.user_index),re_patn(r'^user/index/$', views.user_index),
编写home/views.py文件代码:
1234#视图函数def user_index(request,page=1): print(page) return HttpRes ...
Django入门(2)之pycharm创建Django项目
MVC设计模式
MVC框架的核心思想是:解耦
降低各功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用
M表示model,主要用于对数据库层的封装
V表示view,用于向用户展示结果
C表示controller,是核心,用于处理请求、获取数据、返回结果
MVT
M表示model,负责与数据库交互
V表示view,是核心,负责接收请求、获取数据、返回结果
T表示template,负责呈现内容到浏览器
搭建Django项目
在pycharm里搭建Django项目。
点击create new project,然后选择Django,再填写项目名称。 ...
Django入门(1)之命令行创建Django项目
windows安装pip
win+r:输入cmd,然后在命令行中输入pip list显示版本号看是否安装过。
去官网下载压缩包.tar.gz
解压文件
在dos窗口进入setup.py的目录中,运行python setup.py install
安装后会在你的python目录下生成scripts目录
配置环境变量:D:\Program Files (x86)\python\Scripts\
在终端中输入pip install django
在环境变量中加入Django的bin路径,D:\Program Files (x86)\python2\lib\si ...
Python核心(18)之装饰器二
装饰器
将类作为装饰器 (用类做装饰器)
1234567891011121314151617181920212223242526272829303132333435#定义类作为装饰器'''1.可以带有区分或者使用的参数arg2.具有接受基本函数传入的参数func3.定义未来的函数 inner'''class Outer: #初始化魔术方法 def __init__(self,arg): #相当与outer函数 #接受的参数为了其他成员方法可以使用 存入对象中 self.arg = arg #一定要具有__cal ...
Python核心(17)之装饰器一
装饰器
为了增加功能而对函数或者类进行功能扩充的一种语法。
定义增加功能的函数
123456789101112131415161718#定义增加功能的函数def decor(func): #增加功能1 print('抱抱') #调用基本函数 func()#相当于调用love #增加功能2 print('举高高')#基本函数def love(): print('亲亲')love = decor(love)#将基本函数作为参数传入装饰函数中#调用函数#love()print(love)
基本的装饰器
12345678 ...
Python核心(16)之描述符
描述符
如果一个类中包含了三个魔术方法(__get__,__set__,__delete__)之一或者全部的类这个类就是一个描述符
描述符的作用就是对类/对象中某个成员进行详细的管理操作。
同时具备三个魔术方法的类就是数据描述符。
没有同时具备三个魔术方法的类就是非数据描述符。
三个魔术方法
__get__()
触发时机:在访问对象成员属性(该成员已经交给描述符管理的时候)的时候触发
作用:设置当前属性获取的值
参数:self 描述符的对象 / 第二个 管理成员的类的对象 / 第三个 管理成员的类
返回值:可有可无
注意事项:无
__set__()
触发时机:在设置对象成员属性(该成员已 ...
Python核心(15)之魔术方法
__getattr__
触发时机:访问不存在的对象成员的时候自动触发
作用:防止访问不存在成员的时候报错!为不存在的成员定义值
参数:一个self接受当前对象,第二个参数接受访问成员的名称字符串
返回值:可有可无
注意事项:无
1234567891011121314151617181920212223242526class Human: #添加成员属性(加入对象) def __init__(self): self.name = '东方不败' self.sex = '男' self.age = 18 #添加成员方法 #魔术方法 ...
Python核心(14)之魔术方法
__repr__
1.触发时机:在使用repr转换对象的时候自动触发
2.作用:可以设置repr函数操作对象的结果
3.参数:一个self接受有当前对象本身
4.返回值:有必须是字符串
5.注意事项:正常情况下,类中的__str__和__repr__魔术方法是完全一样的(字符串中的str和repr魔术方法就不一样。)
12345678910111213141516171819202122232425262728293031323334353637383940class Human: #成员属性 color = '红色' age = 18 name = '梅 ...
Python核心(13)之魔术方法
魔术方法
一种特殊的方法而已。
特点:不需要人工调用,在特定的时刻自动执行。
__init__初始化魔术方法
1.触发时机:实例化对象之后触发
2.作用:为对象添加对象的所属成员。
3.参数:一个self 接受当前对象 其他的参数根据实例化的传参决定
4.返回值:无
5.注意事项:无
1234567891011121314151617181920212223242526class Human: #属性 eye = 2 skin = 'yellow' #方法 #魔术方法__init__ def __init__(self,kidname,petname):#pe ...