Python3.5 学习十九 Django分模块讲解 MTV+URL
本节内容概述:

表单提交的Method使用规则:get 获取数据 post提交数据
单选使用get
多选使用getlist
request.POST.getlist("favor")
文件上传需要再form表单增加属性
enctype="multipart/form-data" 读取文件需要注意如下步骤:
obj = request.FILES.get("fafafa")
filename = os.path.join('upload',obj.name)
f = open(filename, mode="wb")
for item in obj.chunks():
f.write(item)
f.close()
两种模式

相当于编程的两种模式:对象编程和过程编程两种模式


模板语言循环字典

动态页面,使用?进行传参
注意模板中超链接跳转页面的代码中需要有斜杠:

新的一种方式:/1.html,需要再urls.py中使用正则表达式
Django1.0
path('detail-(\d+).html',views.detail),
相应的,views函数的形参也会追加一个,形参随便起名字
但是在Django2.0中,需要引入re_path

路由映射按照正则分组(今后推荐使用的):


匹配结果为
对于views函数,可以通用一种形参方式接受数据:

*args为单个变量组成的元祖,**kwargs对应字典
Django对应的路由名称

引用方式:


当前URL:request.path_info
也可以用另一种形式实现URL的自定义生成:
在views里生成url

URL的分发:

Django默认使用sqlite作为默认数据库,如果想用mysql,则需要更改一下配置目录里的__init__文件:
数据库需要自己先创建

数据创建

用Navicat查看sqlite数据库
练习针对用户的增删改查,Url+Views+html
Django的Modles的字段类型:很多,基本类型主要有几类:时间、字符串、数字、二进制
修改表结构时,增加一列后,执行makemigration 时,系统会提示增加的方式,按提示写入默认值的需求
自增列,如果不写,后台会自动创建,手动生成,按如下语法规则,必须填入primary_key=True

字段的参数:
null 是否为空
default 默认值
primary_key 主键
db_column 列名
db_index 普通索引
unique 唯一索引
unique_for date 只对日期部分做索引
unique_for_month 同上
unique_for_year 同上
choices Django admin中显示下拉框,避免连表查询降低效率

auto_now 更新时,自动更新为当前时间
auto_now_add 创建时,自动创建为当前时间

blank 只是在Django admin中是否为空
varbose_name 在Django admin中显示的字段中文
editable 在Django admin中是否可以被编辑
error_messages 在Django admin中自定义错误提示信息
error_messages={‘required’:'请输入。。。'}
help_text 在Django admin中给予文本框的提示
validators 在Django admin中自定义字段正则的错误信息
创建外键:models.ForeignKey("tabelname",to_field="column_name",default=XXX)
外键在表中的列名会自动加上表名+“_id”
UserInfo.user_group是一个对象
UserInfo.user_group.id是一个对象的属性
UserInfo.user_group_id是一个列
创建数据时,可以不用对象方式赋值给UserInfo.user_group
而是用给列UserInfo.user_group_id赋值的方式来关联外键
这种外键嵌套可以多层嵌套

作业:=========================用户管理==========================
1、对于用户组的增删改查
2、对于用户的增删改查
添加必须做成模态对话框
删除也必须是模态对话框
修改,可以做跳转,下拉框的默认值应该是原数据,而不是初始第一个值
3、比较好看的页面
4、预习:Python进阶之路 modles模块的进阶部分,一对一、一对多、多对多
Django ORM操作中最牛逼的语法:
1、__双下划綫
2、_set
Python3.5 学习十九 Django分模块讲解 MTV+URL的更多相关文章
- 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十九:SDRAM模块② — 多字读写
实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容. Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A ...
- python3.4学习笔记(九) Python GUI桌面应用开发工具选择
python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...
- Python3.5学习十八 Python之Web框架 Django
Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...
- python 学习笔记十九 django深入学习四 cookie,session
缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...
- 强化学习(十九) AlphaGo Zero强化学习原理
在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...
- Django学习之六:Django 常用模块导入记忆
Django 常用模块导入记忆 django相关 1. urls相关操作 from django.urls import path, re_path, include from django.urls ...
- OpenCV学习笔记十九:opencv_gpu*模块
一,简介: 基于GPU加速的opencv算法库.
- jQuery源代码学习之九—jQuery事件模块
jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...
- python运维开发(十九)----Django后台表单验证、session、cookie、model操作
内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...
随机推荐
- Angular学习笔记:Angular CLI
定义 Angular CLI:The Angular CLI is a command line interface tool that can create a project, add files ...
- oracle创建、删除 数据库、建立表空间以及插入 删除 修改表
一.创建.删除数据库 oracle OraDb11g_home->配置和移植工具->Database configration Assistant->...然后可以创建或者删除数据 ...
- python中的open( )函数
函数原型 open(file, mode=‘r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True) buff ...
- service层代码相互调用, 导致spring循环依赖,设计上的优化
管理员创建用户需要发送激活邮件, 而发送激活邮件的时候需要判断发件人是不是合法的用户, 因此设计到一个循环依赖的问题 //UserService @Service class UserService{ ...
- 20 模块之 re subprocess
re: 什么是正则: 正则就是用一些具有特殊含义的符号组合到一起(称为正则表达式)来描述字符或者字符串的方法.或者说:正则就是用来描述一类事物的规则.(在Python中)它内嵌在Python中,并通过 ...
- linux_修改ip(重启后永久生效)
vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 TYPE=Ethernet UUID=a20869f2-4095-4e5d-9b0c- ...
- MVC 开发模式
1.M:Model 模型:实体类和业务和dao 2.V:view 视图:JSP 3.C:Controller 控制器:servlet 3.1 作用:视图和逻辑分离 4.MVC适用场景:大型项目开 ...
- 2018.11.08 NOIP模拟 景点(倍增+矩阵快速幂优化dp)
传送门 首先按照题意构造出转移矩阵. 然后可以矩阵快速幂求出答案. 但是直接做是O(n3qlogm)O(n^3qlogm)O(n3qlogm)的会TTT掉. 观察要求的东西发现我们只关系一行的答案. ...
- 2018.11.01 NOIP训练 cost数(搜索+容斥原理)
传送门 唉考试的时候忘记剪倍数的枝了666666分滚粗. 其实就是一直取lcmlcmlcm搜索,然后容斥原理统计就行了. 代码
- win10 VMware ubuntu12.04 虚拟机不能上网【已解决】
参考 :链接. 本机环境:Ubuntu 12.04 无线上网(连接手机热点). 主机:Win 10. 步骤1:VMware安装运行后,默认会有3个虚拟网络,VMnet0,VMnet1,VMnet8. ...