本节内容概述:

表单提交的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的更多相关文章

  1. 【黑金原创教程】【FPGA那些事儿-驱动篇I 】实验十九:SDRAM模块② — 多字读写

    实验十九:SDRAM模块② — 多字读写 表示19.1 Mode Register的内容. Mode Register A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A ...

  2. python3.4学习笔记(九) Python GUI桌面应用开发工具选择

    python3.4学习笔记(九) Python GUI桌面应用开发工具选择 Python GUI开发工具选择 - WEB开发者http://www.admin10000.com/document/96 ...

  3. Python3.5学习十八 Python之Web框架 Django

    Python之Web框架: 本质:Socket 引用wsgiref创建web框架 根据web框架创建过程优化所得: 分目录管理 模板单独目录 执行不同函数单独存入一个方法py文件 Web框架的两种形式 ...

  4. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  5. 强化学习(十九) AlphaGo Zero强化学习原理

    在强化学习(十八) 基于模拟的搜索与蒙特卡罗树搜索(MCTS)中,我们讨论了MCTS的原理和在棋类中的基本应用.这里我们在前一节MCTS的基础上,讨论下DeepMind的AlphaGo Zero强化学 ...

  6. Django学习之六:Django 常用模块导入记忆

    Django 常用模块导入记忆 django相关 1. urls相关操作 from django.urls import path, re_path, include from django.urls ...

  7. OpenCV学习笔记十九:opencv_gpu*模块

    一,简介: 基于GPU加速的opencv算法库.

  8. jQuery源代码学习之九—jQuery事件模块

    jQuery事件系统并没有将事件坚挺函数直接绑定在DOM元素上,而是基于事件缓存模块来管理监听函数的. 二.jQuery事件模块的代码结构 //定义了一些正则 // // //jQuery事件对象 j ...

  9. python运维开发(十九)----Django后台表单验证、session、cookie、model操作

    内容目录: Django后台表单验证 CSRF加密传输 session.cookie model数据库操作 Django后台Form表单验证 Django中Form一般有2种功能: 1.用于做用户提交 ...

随机推荐

  1. centos6.5虚拟机每次都要ifup eth0的解决办法

    修改文件/etc/sysconfig/network-scripts/ifcfg-eth0把ONBOOT=no改ONBOOT=yes

  2. 【Web】前端文件上传,带进度条

    最近做项目发现,在文件上传的过程中,增加进度条,能大大改善用户体验.本例介绍带进度条的文件上传 环境搭建 参考:[Java]JavaWeb文件上传和下载. 原生ajax上传带进度条 <%@ pa ...

  3. Java 读取HDFS文件系统

    最近有个需求,计算用户画像. 系统大概有800W的用户量,算每个用户的一些数据. 数据量比较大,算用hive还是毫无压力的,但是写的oracle,在给出数据给前端,就比较难受了. 然后换了种解决方法: ...

  4. TOMCAT内存溢出及大小调整的实现方法

    一.tomcat内存设置问题 收藏 在使用Java程序从数据库中查询大量的数据或是应用服务器(如tomcat.jboss,weblogic)加载jar包时会出现java.lang.OutOfMemor ...

  5. 2019.01.22 bzoj2874: 训练士兵(主席树)

    传送门 题意简述:给出一个n∗mn*mn∗m的矩阵n,m≤1e8n,m\le1e8n,m≤1e8,支持矩形加,矩形求和,强制在线. 思路:第一眼二维动态开点线段树,上网去搜有没有这种做法发现会被卡时空 ...

  6. MFC控件Slider Control的使用

    写MFC界面程序时,今天恰好用到Slider控件,做一个小小的记录. 步骤 1.在工具栏中添加Slider Control控件: 2.在控件上右键->添加变量(Add Variable...), ...

  7. 手机布局rem的使用(rem)

    最后一堆代码是举例的全码. 一 直接<head>标签里套用以下,其他都不用 <script> document.documentElement.style.fontSize = ...

  8. adb 调试出现问题

    用adb shell时出现error: insufficient permissions for device 在终端输入 sudo -s adb kill-server adb start-serv ...

  9. 有趣的HTML5 CSS3效果

    iphone6 外观:http://www.html5tricks.com/demo/css3-iphone6/index.html 天气图标:http://www.html5tricks.com/d ...

  10. (记忆化搜索)数塔 (zznu 1271)

    http://acm.zznu.edu.cn/problem.php?id=1271 1271: 数塔 时间限制: 1 Sec  内存限制: 128 MB提交: 109  解决: 78[提交][状态] ...