day16-django框架初识

day16 2018-08-05

Django框架 

以前的内容:
    - Python基础
    - 前端部分

讲课内容: 

1. web框架的本质(了解就行)
    用户的浏览器(socket客户端) 和 网站的服务器(socket服务端)之间
    
    socket
    
    HTTP协议:
        1. 请求(request)
            
        2. 响应(response)
    
    web框架本质 
        0. socket收发消息
            
        1. 访问不一样的URL返回不一样的页面
            用户访问的具体路径 --> 执行不一样的函数 --> 返回不一样的结果
        2. 不一样用户访问相同的URL返回不一样的页面内容
            字符串的替换
            
    Web框架的本质三大部分:
        a. 收发socket消息      web服务器 
        
                               web应用程序
        
        b. 根据不一样的请求执行不一样的函数返回不一样的内容
        c. 字符串替换
        
        
        Django开发阶段使用    wsgiref 模块来处理socket消息
        
        Django部署到线上使用  uWsgi/gunicorn 模块来处理socket消息
        
        
        Python中 web服务器程序和Web应用程序之间传递消息:
            WSGI协议
            
        
        
        
    Python里面Web框架的分类:
        1. 本身实现b和c,使用第三方的a:
            Django框架
        2. 本身实现b,使用第三方的a和c:
            Flask
        3. 本身实现a\b\c:
            Tornado

2. django安装和介绍 (本身走一遍就OK)
    1. Django介绍
        版本:1.8.3   1.11.x    2.x
    2. 安装
        pip3 install django==1.11.11
        
        pip3 list 查看当前Python解释器安装了哪些第三方包
        
        pip3 install django==1.11 -i https://pypi.tuna.tsinghua.edu.cn/simple
        
        pip3 uninstall django
    3. 经常使用命令
        1. 建立Django项目
            1. 命令行建立
                django-admin startproject s21django
                在当前目录下建立一个名为 s21django 的Django项目
            2. PyCharm建立
                见群内截图
            3. 启动Django项目
                1. PyCharm里面启动:
                    点绿色的小三角
                2. 命令行启动
                    1. 切换到项目目录下!
                    2. python manage.py runserver
                       python manage.py runserver 127.0.0.1:8090
                       python manage.py runserver 8091
                
            4. 建立APP
                1. 在PyCharm建立
                2. 在命令行建立
                    1. 切换到项目目录下!
                    2. python manage.py startapp app名字
                    3. 在settings.py里面注册你新建立的那个app
                    
            5. Django项目使用静态文件的配置
                1. 在项目目录下新建一个保存静态文件的文件夹
                2. 告诉Django你去我上面新建的路径去找静态文件
                    settings.py中 加上相应的配置项:
                        # 静态文件存放的路径别名,我在HTML文件中使用的那个名字
                        STATIC_URL = '/static/'
                        # 静态文件实际保存的目录是哪一些
                        STATICFILES_DIRS = [
                            os.path.join(BASE_DIR, 'static')
                        ]
                3. 在HTML页面中使用刚才配置的静态文件
                    /static/...  来引用

3. MVC和MTV (了解便可)
    1. MVC   --> Model  View        Control
    2. MTV   --> Model  Template    views

4. 基本路由系统 (urls.py)
    1. 路由是一个有顺序的列表,从上到下去匹配
    2. 路由的路径是根据正则表达式来匹配的

5. 基本视图函数(views.py)
    1. 基础必会三件套
        from django.shortcuts import HttpResponse, render
        1. HttpResponse('字符串')
        2. render(request, 'xx.html')
        3. redirect

--- ↑ Django基础部分 -----

6. 基本模板引擎(templates/xx.html) 
    1. render(request, 'xx.html', {"k": "v"})
    2. 经常使用语法:
        1. {{ 变量名 }}
        2. {{ 变量名.key }}
        
        3. for循环
            {% for x in xx %}
                {{x}}
            {% endfor %}
        4. if判断
            {% if 条件 %}
                ...
            {% else %}
                ...
            {% endif %}


7. ORM(单表) 
    1. 用pymysql链接MySQL数据库查询数据
        1. import pymysql
        2. 创建链接
        3. 获取光标
        4. 执行SQL语句
        5. 获取数据
        6. 关闭光标
        7. 关闭链接
    2. 使用pymysql链接数据库缺点:
        1. 麻烦
        2. 本身写SQL语句!!!
    3. 使用ORM工具链接数据库
        - 优势:
            1. 不用本身写SQL语句!!!
        - 缺点:
            1. 执行效率不高
    4. ORM是个啥?
        1. 对象关系映射
            
            类                       数据表
            属性                     字段
            对象                     数据行
        
        2. Django中如何使用ORM
            1. 告诉Django链接哪一个MySQL数据库(settings.py)
            2. 告诉Django用pymysql链接MySQL数据库 (默认用的是MySQLDB)
            3. 去app/models.py里面建立类
            4. 让Django去数据库帮我建立类对应的数据表
                1. python manage.py makemigrations  --> 将models.py的改动记录在小本本上
                2. python manage.py migrate         --> 将变动记录翻译成SQL语句,去数据库执行
                
        3. ORM的使用
            1. 操做数据表
            2. 操做数据行
            
    5. ORM单表的增删改查
        1. 查询
            models.Publisher.objects.all()               --> 查询全部的出版社数据
            models.Publisher.objects.get(id=1)           --> 查询id=1的那个出版社
        2. 增长
            models.Publisher.objects.create(name='xx')   --> 建立一个名为xx的出版社
        3. 删除
            models.Publisher.objects.get(id=2).delete()  --> 删除id=2的那个出版社
        4. 编辑
            obj = models.Publisher.objects.get(id=2)     --> 找到要编辑的对象
            obj.name = "新值"                             --> 修改
            obj.save()                                   --> 将修改同步到数据库
            
            
8. request相关的知识点:
    1. request.method  --> 获取用户请求的方法
        - GET          --> 表示用户向我要一个页面这种操做
        - POST         --> 表示用户向我发送一些数据
    2. request获取URL中的参数
        /xx/?name=alex&age=9000
        request.GET                        --> 大字典
            - request.GET['name']          --> 不推荐
            - request.GET.get("name")      --> 推荐
    3. request.POST                        --> 一个大字典,存的是用户post发过来的数据
        1. request.POST['key']             --> 不推荐
        2. request.POST.get('key', '默认值')
        
作人戾气不要过重!!!
    
                
        
        




练习题: 

    1. 什么是wsgi? 

    2. mvc和mtv的区别以及django属于哪种? 

    3. django常见命令 

    4. 如何经过GET和POST向后台传参 

    5. django中如何获取POST和GET传入的参数 

    6. 模板渲染时如何获取列表或字典的元素(根据索引)? 

    7. 什么是ORM? 

    8. 建立django程序时须要注意的配置有哪些? 

    9. 请写出流程:建立一张表并对其进行增删改查 







做业:主机管理【01】:用户管理 

    1. 基于django建立表: 

        用户表:ID、用户名、密码 

    2. 用户登陆(md5加密) 

    3. 用户管理:增删改查 

    4. 套用BootStrap样式 
课上笔记

 


做业:
1.练习题
2.做业:主机管理 01:用户管理 1234 注意加密
02主机管理
03分组



简易版的socketserver
\r\n换行


http工做原理
经常使用get、post

http状态码:

记得字符串转成字节类型
替换后记得赋给新的变量
例子:获取;函数版,静态获取,动态获取

小结:
web框架本质
web服务器:接收消息
web应用程序:真正干活,处理数据

django开发阶段使用--wsgiref模块来处理socket消息
Django部署到线上使用  uWsgi/gunicorn 模块来处理socket消息
python中 wsgi协议(web服务器与web应用程序之间传递消息)


安装django
templates模板
运行:要运行项目,进入项目文件夹,点击上方的小三角
mysite总项目

项目目录下:切换到python manage.py runserver
建立app:python manage.py startapp app名字
三件套

from django.shortcuts import HttpResponse, render
1. HttpResponse('字符串')
2. render(request, 'xx.html')
3. redirecthtml



让用户本身去跳转,建立后的界面
static静态文件夹


链接数据库4步!
默认settings修改
两条执行命令
1. python manage.py makemigrations --> 将models.py的改动记录在小本本上
2. python manage.py migrate --> 将变动记录翻译成SQL语句,去数据库执行
orm的使用:
操做数据表
操做数据行
图书管理系统例子。出版社列表(查询、新增、删除、编辑)。
编辑:跳转到编辑界面,提交后显示修改后的内容
1.获取用户要编辑的出版社的id
2.用id去数据库中找到这条记录
3.在页面上展现原来的出版社名字

obj = models.Publisher.objects.get(id=2) --> 找到要编辑的对象
obj.name = "新值" --> 修改
obj.save() --> 将修改同步到数据库前端

urls---views----html
相关文章
相关标签/搜索