• django5


    昨日回顾

    1 django orm 连接mysql
    	-1 安装pymysql
        -2 setting中配置
        -3 django默认用过的mysqldb,在app的__init__.py中写两句话
        -4 后续操作完全一样
    2 pycharm连接mysql,sqlite
    3 路由的基本使用
    	-1.x中 url函数,四个参数
    4 路由分发
    	-不同app有自己的路由关系
    	-127.0.0.1/app01/login
    	-根路由 url('app01',include('app01.url'))  开始匹配到了app01后就进入分路由app01.url继续匹配login,然后执行对应的视图函数
    5 无名分组
    	-127.0.0.1/login/4444/55666  4444 和55666会当作位置参数传递给视图函数(其实也是当作路径匹配,路径匹配成功后才能当作参数传递)
    	-url(r'^login/(d+)/(d+)',include('app01.url'))
    6 有名分组
    	-url(r'^login/(?P<year>d+)/()',include('app01.url'))
        -跟无名分组不能混用
    7 反向解析
    	-动态获取路由
        -视图函数
        	-url=reverse('路由别名') 如果做了路由分发系统,则在反向代理解析时,可以将跟路由路径和分路由路径全部解析出来也就是解析url的全部
        -模板文件
        	-{% url '路由别名' %}
    
    8 名称空间
    	-name重名了,不知道反向解析找的是哪一个,在include路由分发时,给每个路由加一个名称空间
    	-url=reverse('名称空间:路由别名')
        --{% url '名称空间:路由别名' %}
    

    今日内容

    1 django2.0版的path

    1 从2.x以后,建议使用path,是一个准确路径
    2 使用正则方式,推荐使用re_path,用法跟url一模一样
    # 在创建虚拟环境的时候,如果点了继承系统环境,那么会和系统共用一个解释器,也就是如果在新建的虚拟环境中,如果删除Django的某一个版本,那么会导致系统环境的Django也被删除,所以我们一般创建虚拟环境的时候会创建纯净的虚拟环境,也就是所有的不勾选
    

    2 path转化器

    1 5个内置转换器
    '''
        str,匹配除了路径分隔符(/)之外的非空字符串,这是默认的形式
        int,匹配正整数,包含0。
        slug,匹配字母、数字以及横杠、下划线组成的字符串。
        uuid,匹配格式化的uuid,如 075194d3-6885-417e-a8a8-6c931e272f00。
        path,匹配任何非空字符串,包含了路径分隔符(/)(不能用?)
    '''
    
    2 例子  类似 year是当作参数传递给视图函数
    	-path('login/<int:year>', views.login),
        -path('login/<str:year>', views.login),
        -path('login/<path:p>', views.article),
    3 高级例子
    	-实现匹配这种路径:http://127.0.0.1:8000/liuqingzheng/p/4444.html
        -path('<str:name>/p/<int:id>.html', views.article),
        -re_path(r'^(?P<name>.*?)/p/(?P<id>d+).html$', views.login),
        -url(r'^(?P<name>.*?)/p/(?P<id>d+).html$', views.login),  # url在2.x以后不建议使用
        
        
        
    4 转换器可以不可以在re_path中使用?不能!!!!
    

    3 自定义转化器(不重要)

    1 写一个类
    	-regex属性:这里写的正则表达式就能匹配
        -to_python方法
        -to_url 方法
        
    2 注册这个类  导入from django.urls import register_converter 以及类名
    	register_converter(类名, 'lqz')  
        
    3 使用在path中使用
    	path('<lqz:name>/', views.article),
    
    image-20200930171940993

    4 图书管理系统表关系(图书管理系统)

    0 表中字段的关系
    	-一对一
        -一对多
        -多对多
    
    1 需要有哪几个表
    	-书籍表:book
        	-id
            -name
            -price
            -publish
            
        -作者:author
        	-id
            -name
            -age
            -author_detail_id  1
        -作者详情:authordetail
        	-id
            -address
            -phone
            #-author_id
        -出版社:publish
        	-id
            -name
            -addr
            -email
        
    2 表之间的关系
    	-书和作者:多对多:需要创建第三张表(中间表,关系表)
        -书和出版社:一对多:一对多的关系一旦确立,关联字段写在多的一方
       	-作者和作者详情:一对一,关联字段写在谁都可以,推荐写在查询多的一方
        
    3 其实 一对一的关系,是一对多+unique(理解这句话)
    
  • 相关阅读:
    wxpython的安装

    拓扑排序
    树,二叉树,森林,三者的转换
    二叉树的遍历
    最短路径
    图的遍历
    图的最小生成树
    哈夫曼树的应用
    哈夫曼树
  • 原文地址:https://www.cnblogs.com/feiguoguobokeyuan/p/13964426.html
Copyright © 2020-2023  润新知