您的位置:首页 > 编程语言 > Go语言

Django第一天上课笔记

2020-01-12 12:28 162 查看

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注册

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

数据库连接配置

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



转载于:https://www.cnblogs.com/1832921tongjieducn/p/11401685.html

  • 点赞
  • 收藏
  • 分享
  • 文章举报
diaowei6622 发布了0 篇原创文章 · 获赞 0 · 访问量 128 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: