zoukankan      html  css  js  c++  java
  • 第一章、Django概述

    第一章、Django概述

    一、了解软件开发架构

    c/s  客户端   服务端
    
    	b/s  浏览器   服务端
    
    	ps:bs本质也是cs
    
    

    二、HTTP协议

    全称:超文本传输协议
    1.四大特性
    	1.基于TCP/IP之上作用于应用层
    	2.基于请求响应
    	3.无状态  每次连接一次只处理一个请求,
    		不保存用户状态 不利于保持连接 所以才有cookie session token的产生...
    	4.无连接:
    			长连接  websocket(HTTP协议的大补丁):没有数据传也要保持tcp连接
    
    2.数据格式
    	请求格式
    		请求首行(请求方式,协议版本。。。)
    		请求头(一大堆k:v键值对)
    		
    
    		请求体(真正的数据  发post请求的时候才有 如果是get请求不会有)
    	
    	响应格式
    		响应首行
    		响应头
    		
    
    		响应体
    

    三、响应状态码

    	用特定的数字表示一些意思
    	1XX:服务端已经成功接收到了你的数据 正在处理  你可以继续提交其他数据
    	2XX:服务端成功响应(200请求成功)
    	3XX:重定向
    	4XX:请求错误(404 请求资源不存在   403 拒绝访问)
    	5XX:服务器内部错误(500 )
    

    四、请求方式

    get请求
            朝别人要数据(get请求没有请求体,get请求也可以携带参数)
        post请求
            朝别人提交数据(用户登录)
            
    

    五、基于wsgiref模块

    相当于web服务网关接口
            1 socket代码帮你封装好了 
            2 http数据自动帮你处理好了
                1.请求来的时候 帮你拆分http数据格式
                2.响应走的时候 有帮你封装成了符合http数据格式的数据
    根据不同的功能拆封成不同的py文件
        urls.py  路由与视图函数对象关系
        views.py  放的是视图函数(处理业务逻辑的)
        templates  模板文件夹(一堆html文件)
    

    六、.动静态网页

    静态网页
    		数据是写死的 万年不变
    	动态网页
    		数据是实时获取的
    		eg:
    			1.后端获取当前时间展示到前端
    			2.后端获取数据库中的数据展示到前端
    
    疑问:如何将后端获取的数据 传递给html页面
    后端获取的数据 传递给html页面  >>>:  模板的渲染
    jinja2  
    pip3 install jinja2
    模板语法(极其贴近python后端语法)
    	<p>{{ user }}</p>
    	<p>{{ user.name }}</p>
    	<p>{{ user['pwd'] }}</p>
    	<p>{{ user.get('hobby') }}</p>
    -----------------------------------------	
    	{% for user_dict in user_list %}
    		<tr>
    			<td>{{ user_dict.id }}</td>
    			<td>{{ user_dict.name }}</td>
    			<td>{{ user_dict.pwd }}</td>
    		</tr>
    	{% endfor %}
    

    七、python三大主流web框架

    Django:
    		大而全 自带的功能特别特别多 类似于航空母舰
    		有时候过于笨重
    Flask
    	小而精 自带的功能特别特别少 类似于游骑兵
    	第三方的模块特别特别多,如果将flask第三方模块全部加起来 完全可以超过django
    	
    	比较依赖于第三方模块
    
    Tornado
    	异步非阻塞
    	牛逼到可以开发游戏服务器
    


    A:socket部分
    B:路由与视图函数对应关系
    C:模板语法

    Django:
    	A用的别人的  wsgiref
    	B自己写的
    	C自己写的
    Flask
    	A用的别人的  werkzeug(基于wsgiref)
    	B自己写的
    	C用的别人的  jinja2
    Tornado
    	三者全是自己写的
    

    八、安装Django

    注意事项
    	1.计算机的名称不能有中文
    	2.一个pycharm窗口就是一个项目
    	3.项目名里面尽量不要用中文
    django版本问题
    	1.X   2.X  现在市面上用的比较多的还是1.X
    	推荐你使用1.11.9~1.11.13
    django安装
    	pip3 install django==1.11.11	
    如何验证django是否安装成功
    	命令行直接敲django-admin
    

    说明:

    一个django项目就类似于是一所大学,而app就类似于大学里面的学院
    django其实就是用来开发一个个应用的
    一个app就相当于一块独立的功能
    	用户功能
    	管理功能
    django支持任意多个app
    如何使用
    	命令行使用
    		创建django项目
    			django-admin startproject mysite
    			    注意:
                            1.使用命令行创建django项目 不会自动帮你创建templates文件夹
                        只能自己创建
                            2.settings文件中 需要你手动在TEMPLATES写配置
                                os.path.join(BASE_DIR, 'templates')
    		启动django项目
    			python manage.py runserver 
    		创建应用app
    			python manage.py startapp app01
                      注意:
                           1.新创建的app需要你去settings配置文件中注册
                           pycharm只会帮你注册第一个你在创建项目的时候写的应用
    

    九、使用django

    在启动django项目的时候 你一定要确保一个端口只有一个django项目
    项目名
        跟项目名同名的文件夹
            settings.py  暴露给用户的配置文件
            urls.py  路由与视图函数对应关系
        应用名
            migrations文件夹  存放数据库迁移记录的
            admin.py  django后台管理
            apps.py  注册相关
            models.py  模型类 
            tests.py  测试文件
            views.py  存放视图函数
        templates文件夹  存放html文件
        manage.py  django入口文件
    


  • 相关阅读:
    Docker+Jenkins持续集成环境(1)使用Docker搭建Jenkins+Docker持续集成环境
    DockOne技术分享(二十):Docker三剑客之Swarm介绍
    最佳实战Docker持续集成图文详解
    Spring Cloud Netflix Eureka源码导读与原理分析
    JVM内存区域的划分(内存结构或者内存模型)
    深入理解JVM(一)——JVM内存模型
    java多线程有哪些实际的应用场景?
    深入理解Java类加载器(1):Java类加载原理解析
    【深入Java虚拟机】之四:类加载机制
    OAuth 2和JWT
  • 原文地址:https://www.cnblogs.com/demiao/p/11715902.html
Copyright © 2011-2022 走看看