zoukankan      html  css  js  c++  java
  • 1022内容

    今日内容

    数据的编辑与删除
    图书管理系统表设计
    django请求生命周期
    路由层 urls.py
        路由分发
        有名无名分组
        反向解析
        路由分发
        名称空间
        伪静态
        虚拟环境
        django1.x与django2.x的区别
        JsonResponse
        form表单上传文件
    

    今日作业
    1.自己实现数据的增删改查(用页面的形式)
    2.本周大作业 图书管理系统
    表与表之间的关系
    一对一
    一对多
    多对多
    图书表
    出版社
    作者
    # 书和出版社是一对多的关系 外键字段键在多的一方
    publish_id = models.ForeignKey(to='Publish') # to指定跟谁是外键关联的 默认关联的是表的主键字段
    """
    ForeignKey字段 django orm在创建表的时候 会自动给该字段添加_id后缀
    """
    #书和作者是多对多的关系 外键字段建在任何一方都可以 但是 推荐你建在查询频率比较高的一方
    authors = models.ManyToManyField(to='Author')
    #authors字段仅仅是一个虚拟字段 不会再表中展示出来 仅仅是用来告诉django orm 书籍表和作者表示多对多的关系 自动创建第三张表
    author_detail = models.OneToOneField(to='AuthorDetail')
    #OneToOneField字段 django orm在创建表的时候 会自动给该字段添加_id后缀

    路由层

    urls.py  路由与视图函数对应关系 
    

    无名分组与有名分组

     # 无名分组
        # url(r'^test/(d+)/', views.test),
        # 有名分组
        # url(r'^test/(?P<month>d+)/', views.test),
    

    反向解析

    根据某一个东西 动态解析出一个结果 该结果可以直接访问对应的url

    url(r'^test_add/', views.testadd,name='xxx')
    
    前端解析
        {% url 'xxx' %}
    
    后端解析
        from django.shortcuts import render,HttpResponse,redirect,reverse
        url = reverse('xxx')
    
    无名分组反向解析
        url(r'^test_addsajdsjkahdkjasjkdh/(d+)/', views.testadd,name='xxx'),
        
        前端解析
            <a href="{% url 'xxx' 1 %}">222</a>
        
        后端解析
            url = reverse('xxx',args=(1,))
    
    有名分子反向解析
        url(r'^test_addsajdsjkahdkjasjkdh/(?P<year>d+)/', views.testadd,name='xxx'),
        前端解析
            <a href="{% url 'xxx' 1 %}">222</a>
            
            <a href="{% url 'xxx' year=1 %}">222</a>
        
        后端解析
            url = reverse('xxx',args=(1,))
    


    url = reverse('xxx',kwargs={'year':123})

    作业:用无名分组或者有名分组+反向解析 完成数据的编辑功能 
        url(r'^edit_user/(d+)/',views.edit_user,name='edit')
    
        user_queryset = models.User.objects.all()
    
        {% for user_obj in user_queryset %}
            <td>
                <a href="{% url 'edit' user_obj.pk %}">编辑</a>
                <a>删除</a>
            </td>
        {% endfor %}
    
    
        def edit(request,edit_id):
            pass
    
    注意 反向解析的别名 一定不要重复 
    

    路由分发(******)

    django里面的app可以有自己的static文件,templates文件夹,urls.py(******)   
    
    项目名下面的urls.py不再做路由与视图函数对应关系
    而是做一个中转站  只负责将请求分发到不同的app中 
    然后在app的urls.py完成路由与视图函数的对应关系
    from django.conf.urls import url,include
    
    url(r'^app01/',include(app01_urls)),
    url(r'^app02/',include(app02_urls))
    

    名称空间(了解)

    ​ 总路由
    url(r'^app01/',include('app01.urls',namespace='app01'))
    url(r'^app02/',include('app02.urls',namespace='app02'))

        print(reverse('app01:index'))
        print(reverse('app02:index'))
    


    通常情况下 起别名的时候 前面可以加上你的应用名

    伪静态

    将动态网页假装成是静态的
    
    这样做的目的是为了提高搜索引擎的SEO查询优先级
    
    搜索在收录网站的时候 会优先收录看上去像是静态文件的资源
    
    但是无论你怎么使用伪静态进行优化 你也干不过RMB玩家
    

    虚拟环境

    通常针对不同的项目 只会安装该项目所用的模块 用不到的一概不装
    
    不同的项目有专门的解释器环境与之对应
    
    每创建一个虚拟环境 就类似于重新下载了一个纯净的python解释器
    
    虚拟环境不要创建太多个 
    

    django版本区别

        django1.x
        django2.x
    区别1:
        urls.py中1.x用的是url,而2.x用的是path
        并且2.x中的path第一个不支持正则表达式,写什么就匹配什么
        如果你觉得不好用,2.x里面还有re_path 这个re_path就是你1.x里面的url
  • 相关阅读:
    CoreOS Hyper-V 安装
    RancherOS Hyper-V 安装
    Android sdk content loader 0%的解决方案
    在launcher隐藏应用图标[大杂烩]
    RTSP、HTTP、HTTPS、SDP四种协议详解
    Webview上下滑动渐变色问题解决
    调节listview的item高度
    软键盘消失有残影 不影响activity原有布局 不会重绘之前界面
    android横竖屏禁止重新绘制的方法
    去除actionbar的左侧图标
  • 原文地址:https://www.cnblogs.com/demiao/p/11721677.html
Copyright © 2011-2022 走看看