Python3.5 学习十九 Django分模块讲解 MTV+URL

 

 

本节内容概述:html

 

表单提交的Method使用规则:get 获取数据  post提交数据mysql

单选使用get正则表达式

多选使用getlist  sql

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()

两种模式  

至关于编程的两种模式:对象编程和过程编程两种模式数据库

 

模板语言循环字典编程

 

 动态页面,使用?进行传参函数

 注意模板中超连接跳转页面的代码中须要有斜杠:post

新的一种方式:/1.html,须要再urls.py中使用正则表达式ui

Django1.0url

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赋值的方式来关联外键

这种外键嵌套能够多层嵌套

 

 

做业:=========================用户管理==========================

一、对于用户组的增删改查

二、对于用户的增删改查

  添加必须作成模态对话框

  删除也必须是模态对话框

  修改,能够作跳转,下拉框的默认值应该是原数据,而不是初始第一个值

三、比较好看的页面

四、预习:Python进阶之路 modles模块的进阶部分,一对1、一对多、多对多

Django ORM操做中最牛逼的语法:

一、__双下划綫

二、_set

相关文章
相关标签/搜索