zoukankan      html  css  js  c++  java
  • 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

    
    
    
  • 相关阅读:
    Gem命令详解
    使用Ruby脚本部署Redis Cluster集群
    解决gem install redis报错
    Redis Cluster命令安装
    Redis Sentinel原理介绍与部署
    PyCharm单行多行代码注释快捷键
    windows下python安装与卸载
    MySQL通过SQL语句查看表的索引
    Redis主从复制
    MySQL开启binlog日志
  • 原文地址:https://www.cnblogs.com/HU-HU/p/9547147.html
Copyright © 2011-2022 走看看