zoukankan      html  css  js  c++  java
  • Django第一天上课笔记

    Django:
        注意事项:
            1.计算机名称不能含有中文
            2.一个Pycharm窗口就是一个工程(项目)
            3.项目文件夹不要有中文
        PS:Django版本问题:
            django 1.X  建议使用这个版本 用的最多的是django1.11
            django 2.X
    安装:
        pip3 install django == 1.11.11

    命令行
        创建django项目
            django-admin startproject 项目名称
            例如:
            django-admin startproject mysite
            PS:创建一个应用名的文件夹,里面有一个跟应用名同名的文件夹和一个manage.py的文件
        创建应用;
            django-admin startapp  应用名;
            django-admin startapp app01;
        启动应用:
            python3 manage.py runserver
            也可以
            python3 manage.py runserver +ip port   只不过暂时这个IP与端口不需要加

         ps:命令行新疆django项目不会自动新建Template文件夹
            并且setting配置文件中不会自动写template的路径,

         注意:
            1.在django中创建的应用必须要到setting中去配置注册,否则不识别
                在那个setting 中的INTSALLED_APPS的列表中加入我们新创建的APP名称
                支持简写;appo1  ##直接写app的名字
                最完整的写法是:app01.app.App01Config
            2.确保不要端口冲突,
            3.django是web开发引用,有时候代码修改了加载不出来,可能是因为浏览器的缓存问题
                以谷歌浏览器为例,可以这样设置一下,首先打开浏览器,右键,检查,然后点击弹出窗口
                右上角的三个点,然后点击setting ,在弹出的network类中,将Disable cache(while DevTools is open)勾选上


    拓展:
    application 应用的概念:
        一个django项目,可以有多个应用(可以拆开来,分别给不同的人去开发.开发好了之后整合起来就可了)
        django是一款开发应用的框架,开发好之后整合起来需要统一配置一下,将所有的APP应用全部在setting文件中注册配置

    django项目就类似于一所大学
    而里面的应用就类似于一个个学院

    项目名:
        应用名文件夹:
            migrations 文件夹
                数据库迁移记录
            admin.py
                django admin 后台管理相关
            models.py
                模型类  一个一个的类
            views.py
                视图函数
        项目同名文件夹
            settings.py
                django暴露给用户可配置的配置文件
            urls.py
                路由与视图函数映射关系
        templates
            所有的html文件
        manage.py
            django入口文件  (暂时我们用不到这个)


    总结今天的工作:将Django跑起来了.
        fiel ===>> new project ===>> django==>>
        然后给项目命名
        点来下面的project interpreter:Python 3.6
        选择Existing interpreter 然后选择解释器的位置
        More setting 里面的Application name
        可以在这个项目里面创建一个应用,填一个应用的名字
        然后点击create
        然后就创建好了一个项目,而且这个项目里面已经有一个应用
        然后就可以开始开发了.



    django小白必会三板斧
        HttpResponse:返回字符串
            咋视图函数 views中定义的函数里面,
            return HttpResponse('这里写什么,浏览器就 会展示什么')
            这个是返回字符串,当然,也可以将html文件读出来,然后将读出来的信息给它让他返回
        render:返回html页面
            return render(request,"login.html")
            注意,这里的html文件名必须加双引号,这个文件里面写什么内容,
            前端页面就会展现什么内容
        
        redirect:重定向

        
        

    静态文件
        网站所用到的已经写好的文件(css,js,图片)
        通常网站所用到的静态文件都会存放到static文件夹
        

    django静态文件配置
        STATIC_URL = '/static/'  # 接口前缀
        STATICFILES_DIRS = [
            os.path.join(BASE_DIR,'static'),
        ]
            
        
        {% load static %}
        <link rel="stylesheet" href="{% static 'bootstrap-3.3.7/css/bootstrap.min.css'%}">
        <script src={% static "bootstrap-3.3.7/js/bootstrap.min.js"%}></script>
            
            
        
        
    form表单默认是get请求
        get请求携带的参数是拼接在url后面的以?开头&链接
        ps:get请求可以携带参数 但是参数的大小有限制 最大4KB,并且是明文的
        这个是因为浏览器对url的长度是有限制的,不能太长,而且不同的浏览器对url的
        长度限制是不一样的,
        post请求是将请求的数据放在请求体中,HTTP协议本身是对这个数据长度没有限制的
        理论上是可以无限长,但是服务器处理数据处理程序的能力也限制了这个长度不能无限长
        
        http://127.0.0.1:8000/login/?username=jason&password=123
        
        获取用户输入的框 都必须要有name属性
        
        
        action参数有三种写法
            1.什么都不写 默认往当前页面的url地址提交
            2.只写路由后缀(******)
            3.写全路径
            


            
            
    pycharm连接数据库
    pycharm 提供了操作数据库的接口,在右侧,点击database


    django连接mysql
        sqlite Django自带的一个小型数据库,但是它支持的功能不是很多,对时间
        等数据格式也不是很敏感
        1.配置文件setting中配置
            DATABASES = {
            'default': {
                'ENGINE': 'django.db.backends.mysql',
                'NAME': 'day19',
                'USER':'root',
                'PASSWORD':'123',
                'HOST':'127.0.0.1',
                'PORT':3306,
                'CHARSET':'utf8'
            }
            }
        2.去应用名下的__init__.py或者项目名下的__init__.py文件中 告诉django不要使用默认的mysqld_db模块连接mysql而是使用pymysql
            import pymysql
            pymysql.install_as_MySQLdb()

        
    ORM
        对象关系映射
        
        类                 >>>                数据库的表
        
        对象            >>>                数据库里面的一条条的表记录
        
        对象点属性      >>>                表记录的某个字段对应的值
        
        ps:
            能够让一个不会数据库操作的人 也能够通过编程语言轻松的操作数据库
        
            sql语句已经封装好了,有时候sql语句的查询效率可能偏低
        在django中的models.py中创建类,这个类就可以映射成数据库中的表
        

    django orm注意事项
        django orm不会帮你自动创建库 只能帮你自动创建表
        1.models.py中写模型类
        
        2.执行数据库迁移(同步)命令
            python3 manage.py makemigrations  将数据的更改操作记录到小本本上
            
            python3 manage.py migrate  将更改真正同步到数据库
            (这两句命令需要记住 这两条命令要在Pycharm下面的Teminal中执行)
            
            
            
            
    编辑
        基于已经存在了的数据进行修改
            
            先将用户想要修改的数据查询出来 并且展示给用户看
            
            用户修改完之后发送post请求 后端修改数据
            
            
            
            
    数据的增删改查
        增
            1.create()
                modeles.User.objects.create(kwargs)
                create方法会返回当前所创建的数据对象(*****)
            2.对象.save()
                user_obj = models.User()
                user_obj.username = 'jason'
                user_obj.save()
        删
            queryset对象.delete()
        改
            1.update()
                models.User.objects.filter(kwargs).update()
                批量更新
            
            2.对象.save()
                user_obj = models.User(kwargs)
                user_obj.username = 'jason'
                user_obj.save()
                效率较低
        查
            1.all()  查所有 不需要传参数
            2.filter(kwargs)  结构是一个queryset对象 你可以把它看成一个列表里面是一个个的数据对象
            
            
        
            
                        

    django的视图函数返回的是一个HttpResponse对象
            
            
            
            
    django请求生命周期

        request.GET  获取get请求携带的参数
        request.POST  获取post请求携带的参数
            上面两者在用get取值的时候 默认取列表最后一个元素
            如果想整体取用getlist
        request.method  获取当前请求方式

    HTTP协议
        
    django正常启动

    django命令
        创建
        启动
        数据库迁移命令

    app注册

    静态文件配置 ******

    数据库连接配置

    写一个图书管理系统
        实现图书的增删改查



  • 相关阅读:
    和为S的两个数字
    和为S的连续正数序列
    两个链表的第一个公共结点
    删除链表中重复的结点
    常用开发工具的安装(JDK、IDEA、Tomcat、Maven、Mysql和Nodepad++)——实习日志7.10
    蓄水池取样(转)
    prepare statement
    ProxySQL Getting started
    架构收录
    服务开机自启动
  • 原文地址:https://www.cnblogs.com/1832921tongjieducn/p/11401685.html
Copyright © 2011-2022 走看看