• Django自学历程


    Django自学历程

    HTTP协议

    超文本传输协议

    1.四大特性
    		1.基于TCP/IP之上作用于应用层
    		2.基于请求响应
    		3.无状态  cookie session token...
    		4.无连接
    				长连接  websocket(HTTP协议的大补丁)
    	
    	2.数据格式
    		请求格式
    			请求首行(请求方式,协议版本。。。)
    			请求头(一大堆k:v键值对)
    			
    
    			请求体(真正的数据  发post请求的时候才有 如果是get请求不会有)
    		
    		响应格式
    			响应首行
    			响应头
    			
    
    			响应体
    
    	3.响应状态码
    		用特定的数字表示一些意思
    		1XX:服务端已经成功接收到了你的数据 正在处理  你可以继续提交其他数据
    		2XX:服务端成功响应(200请求成功)
    		3XX:重定向
    		4XX:请求错误(404 请求资源不存在   403 拒绝访问)
    		5XX:服务器内部错误(500 )
    

    wsgiref模块

    该模块实现了上面两个手动的过程
    	根据功能不同拆分成了不同的py文件
    	urls.py   只放路由与视图函数对应关系
    	views.py  放视图函数(函数,类)
    	拆分完成之后 如果想要添加功能,你仅仅只需要在上面两个地方动手脚就可以了
    

    动静态网页

    静态网页

    ​ 数据是写死的,万年不变

    动态网页

    数据是实时获取的

    • 后端获取当前时间展示到前端
    • 后端获取数据库中的数据展示到前端

    模板渲染

    如何将后端获取的数据 传递给html页面

    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的安装

    注意事项

    • 计算机的名称不能有中文
    • 一个pycharm窗口就是一个项目
    • 项目名里面尽量不要用中文

    django版本问题
    1.X 2.X 现在市面上用的比较多的还是1.X
    推荐你使用1.11.9~1.11.13

    django安装
    pip3 install django==1.11.11

    如何验证django是否安装成功
    命令行直接敲django-admin

    django的功能

    • 一个django项目就类似于是一所大学,而app就类似于大学里面的学院
    • django其实就是用来一个个应用的
    • 一个app就相当于一块独立的功能
    • django支持任意多个app

    使用命令行创建django项目

    • 创建django项目
      django-admin startproject mysite
    • 启动django项目
      python manage.py runserver
    • 创建应用app
      python manage.py startapp app01

    注意事项

    • 使用命令行创建django项目 不会自动帮你创建templates文件夹只能自己创建。

    • settings文件中 需要你手动在TEMPLATES写配置os.path.join(BASE_DIR, 'templates')

    • pycharm只会帮你注册第一个你在创建项目的时候写的应用。

    • 新创建的app需要你去settings配置文件中注册。

    Pycharm创建Django项目

    pycharm创建

    • 能够自动帮你创建template文件夹和路径配置。
    • 也能够支持创建一个应用并且自动注册。

    Django项目文件分析

    跟项目名同名的文件夹
       settings.py  暴露给用户的配置文件
       urls.py  路由与视图函数对应关系
    应用名
       migrations文件夹  存放数据库迁移记录的
       admin.py  django后台管理
       apps.py  注册相关
       models.py  模型类 
       tests.py  测试文件
       views.py  存放视图函数
    templates文件夹  存放html文件
    manage.py  django入口文件
    
  • 相关阅读:
    EEPlat 的 后台业务处理模型
    poj 1012 Joseph (约瑟夫问题)
    python使用正則表達式
    二维码_encode与decode
    UITableView显示不全
    Bottle 中文文档
    不相交集python实现
    面试题1:落单的数
    Android开发/源代码资源汇总
    leetCode 26.Remove Duplicates from Sorted Array(删除数组反复点) 解题思路和方法
  • 原文地址:https://www.cnblogs.com/dadazunzhe/p/11716794.html
Copyright © 2020-2023  润新知