zoukankan      html  css  js  c++  java
  • day 67 django orm的基础

    django项目
    
    安装:
    
    创建项目
    
    配置(setting,static,csrf)
    
    创建app,python manage.py startapp app1
    
    三部分
    
    urls.py路由配置
    
    1,普通正则
    
    2分组正则
    
    传位置参数:url(r'^blog/(d+)/',views.blog)
    
    3分组命名(得到的是关键字参数)
    
    url(r'^blog/(?P<year>(d+)/',views.blog'))    视图函数要传参blog(request,year)
    
    4用name指定别名
    
    url(r'^blog/$', views.blog, name='blog') 这里我们使用别名来进行反向解析,为了得到动态的HTML页面跳转效果
    
    html里面:{%url 'blog'%}
    
    views函数里面from django.urls import reverse
    
    函数返回值里面return reverse("blog")
    
    5使用命名空间  以下网址前缀就会有blog
    
    url(r'^blog/', include(app1.urls,namespace='num1' 2017 12))  这里也牵涉到反向解析 后边两个参数 是app1的url 的传参
    
    HTML里面{% url 'num1:blog'%}   url后面空一格写单引号,引号里面写namespace然后冒号name
    
    views里面:from django.urls import reverse 
    返回值return redirect(reverse("num1:blog",arg=(2017,12))) views.py request对象 response对象 FBV和CBV 模板语言 {{变量}} {{变量.}}如果变量是一个字典,我们直接使用这样的方法去取值 {%for%}循环 {%endfor%}结束循环 {%if%}判断
    {% esle %} {
    %endif%}结束判断 过滤器(filter) {{变量名|filter_name:参数}} {{时间对象|date:'Y-m-d'}} {%url%} {%load static%} {%static 'img/1.png'%} 母板,继承,块,组件 连接数据库(orm) 五步四部分 1创建数据库 2在app下的models.py里面创建model类,继承models.Model 3.在setting.py里面配置数据库连接信息 4在项目project的init里面写上import pymysql, pymysql.install_as_mysqldb() # 这一句使用我们的pycharm会自动补全,有提示信息 5,发命令 python manage.py makemigrations # 收集变更 python manage.py migrate # 翻译成sql语句执行 四部分 models.py django pymysql mysql orm:类 数据表 类的属性 数据列 (表里面的字段) 对象 数据行 对表格进行增删改查: 查: models.类名,objects.all() 取到所有的数据是一个列表 [取不到值是不会报错的,就显示为空] models.类名,objects.get() 取到一个对象[特点是取不到值就会报错] mo
    . 老师编辑功能写完
        
        1. magic2函数 --> 用两层for循环解决 全栈8期之殇 问题
        2. 模板语言 in 语法
            {% if xx in xx_list %}
            {% endif %}
        
    
        搜索框(pymysql LIKE %)
            pymysql like查询 拼接占位符时注意的情况
            
        
    
    2. Django再次入门 
        内容回顾
            HTTP请求的本质:
            
            1. socket server是启动的 bind((ip, port)) accept
            2. 浏览器(socket 客户端)输入 域名 回车
                2.1. 解析域名 -> IP和端口 --> 建立连接
                2.2  发GET请求 b'GET / HTTP/1.1
    host:127.0.0.1:8000
    k2:v2r
    
    请求体'
                2.3  发POST请求 b'POST / HTTP/1.1
    host:127.0.0.1:8000
    k2:v2r
    
    ?name=alex&age=18'
            3. 服务端 接收数据
            4. 解析数据, 拿到URL、请求的方法等等 --> 处理数据
            5. 给浏览器发送 响应 消息 --> b'HTTP/1.1 200 OK
    Content-Type:text/html; charset=utf-8
    k2:v2
    
    响应体'
            6. 浏览器断开此次连接    
            
            Django 常用命令
                django-admin startproject s8  --> 执行这条命令的目录下创建了一个项目
                cd s8
                python manage.py runserver IP:port
                
            (目前阶段)Django新建项目要做的事儿:
                settings.py 
                    1. 注释csrf那一行
                    
                    2. 配置Templates模板(HTML文件)的目录
                        1. 1.8版本的设置
                        
                    3. 配置静态文件(js、CSS、img、插件等)的路径
                        1. 外号/别名  --> 在HTML页面上用
                        2. 静态文件存放的真实目录
            Django内容:
                APP
                URLConf
    
    
    
    dels.类名.objects.exclude(条件)  得到除了这个条件的其他的结果
    
    models.类名.objects.first()
    
    models.类名.objects.last()
    
    增加:
    
    一种方式:
    
    models.类名.objects.create(name='peter')
    
    一种方式:
    
    obj = models.类名(name='peter')
    
    obj.save()
    
    删除:
    
    models.类名,objects.filter(age=19).delete()
    
    修改:
    
    models.类名.objects.filter(age=90).update(name='greate')
    
    单个对象是不能够调用update的[只有jQueryset才可以调用update方法]
    
    update()方法对于任何结果集queryset均有效,这意味着我们可以同时更新多条记录update返回的是一个整型数据类型,表示受影响的条数
    
     
    
    我们的对象要想使用修改操作只能够使用下面的方式直接赋值
    
    obj=models.类名.objects.get(id=1)
    
    obj.name='green'
    
    obj.save()

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    毕业了!
    mesos无执行器启动docker
    docker run option
    maintenance
    virtualenv
    multi role
    排序之插入排序
    DLU-1064 美声葱
    codeforces-1025 A Doggo Recoloring
    codeforces-1027 C Minimum Value Rectangle
  • 原文地址:https://www.cnblogs.com/xiaoluoboer/p/8338306.html
Copyright © 2011-2022 走看看