zoukankan      html  css  js  c++  java
  • Django初步了解

    1.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)

    2.请求方式

    get请求 朝别人要数据

    post请求 向别人提交数据(eg:用户登录)

    url统一资源定位符

    3.纯手撸web框架

    1. 纯手撸web框架

      1. 手动书写socket
      2. 手动处理http格式数据
    2. 基于wsgiref模块

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

      1. 静态网页:数据是写死的,万年不变

      2. 动态网页:数据是实时获取的

        ​ 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 %}
      
      

    4.python三大主流web框架

    Django:

    大而全,自带的功能特别特别多,类似于航空母舰

    有时过于笨重

    Flask:

    小而精,自带的功能特别特别少,类似于游骑兵

    第三方的模块特别多,如果将flask第三方模块全部加起来,完全可以超过Django

    比较依赖于第三方模块

    Tornado:

    异步非阻塞

    牛逼到可以开发游戏服务器

    A:socket部分

    B:路由与视图函数对应关系

    C:模板语法

    Django:A是用别人的(wsgiref),B是自己写的,C是自己写的

    Flask:A用的别人的werkzeug(基于wsgiref),B是自己写的,C用的别人的(jinja2)

    Tornado:三者都是自己写的

    5.注意事项

    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

    6.什么是Django

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

    7.如何使用Django

    命令行使用
    		创建django项目
    			django-admin startproject mysite
    		启动django项目
    			python manage.py runserver 
    		创建应用app
    			python manage.py startapp app01
                
                注意:
                    1.新创建的app需要你去settings配置文件中注册
                    pycharm只会帮你注册第一个你在创建项目的时候写的应用
                                                           
               
            注意:
                1.使用命令行创建django项目 不会自动帮你创建templates文件夹
            只能自己创建
                2.settings文件中 需要你手动在TEMPLATES写配置
                    os.path.join(BASE_DIR, 'templates')
                
    	
    pycharm使用
        
       
    在启动django项目的时候 你一定要确保一个端口只有一个django项目
       
    项目名
        跟项目名同名的文件夹
            settings.py  暴露给用户的配置文件
            urls.py  路由与视图函数对应关系
        应用名
            migrations文件夹  存放数据库迁移记录的
            admin.py  django后台管理
            apps.py  注册相关
            models.py  模型类 
            tests.py  测试文件
            views.py  存放视图函数
        templates文件夹  存放html文件
        manage.py  django入口文件
        
    
  • 相关阅读:
    ORA-22835:缓冲区对于CLOB到CHAR转换而言太小
    C#发起Http请求,调用接口
    C#发起HTTP请求Post请求
    C# 调用HTTP接口两种方式Demo WebRequest/WebResponse 和WebApi
    SQL中的子查询
    C# 使用multipart form-data方式post数据到服务器
    批处理框架 Spring Batch 这么强,你会用吗
    JAVA基础(一)
    数据库---连接查询多表查询
    数据库---约束
  • 原文地址:https://www.cnblogs.com/aden668/p/11700437.html
Copyright © 2011-2022 走看看