zoukankan      html  css  js  c++  java
  • Django入门总结

    一、软件开发架构

    两种架构:

    • c/s :客户端/服务器
    • b/s:浏览器/服务器

    2 HTTP协议

    1. http数据请求格式(响应)格式

      • 请求(响应)首行(请求方式,协议版本)
      • 请求(响应)头(一对k:v键值对)
      • 空格|
      • 请求(响应)体(真正的数据,发送post请求时候才会有,如果是get请求不会有)
    2. http四大特性

      • 基于tcp/ip之上的应用层
      • 基于请求响应
      • 无状态(session cokies token)
      • 无连接(长连接 websocket他是HTTP协议的大补订)
    3. 请求状态码

      1xx:表示服务器已经收客户端的数据,正在处理,客户端可以继续发送数据

      2xx: 表示服务器响应客户端请求成功

      3xx:表示重定向

      4xx:表示请求失败

      5xx:服务器内部错误

    4. get和post请求方式

      • get:向服务器拿数据
      • post:向服务器提交数据,进行验证(eg:登录)
    5. url:统一资源定位符
      application:全局数据共享

    二、纯手撸web框架

    1. 手鲁web框架

      • socket自己写
      • http请求数据自己处理
    2. wsgiref模块(web网关服务接口)

      • socket接口帮你封装好了
      • http数据帮你处理好了
        • 1请求来到时候,帮你解析http数据格式,进行封装
        • 2响应走的时候,也会自动把数据封装成http数据的格式返回
    3. 根据不同功能拆分成不同的.py文件

      • urls.py :路由与视图对应的关系
      • views.py处理业务逻辑的视图函数,也可以是类
      • templates:专门存放html标签

      规律:只用你想添加功能,只需要在url.py中添加一条对应的关系,然后再去views.py中写一个函数

    三、动静态网页

    1. 静态网页:页面上的数据是一成不变的(一百年之后也不会变)
    2. 动态网页:页面的数据可以随时改变,并做出响用
      • 通过字符串替换的方式
      • 借助于jinja2模块实现模板的渲染
    3. 模板语法两种格式{{}} {% %}

    四、python三大主流web框架

    1. django框架

      django框架自带功能齐全,socket用别人的,路由与视图函数对应关系和模板语法自己实现

    2. flask

      是一个轻量级的框架,依赖于第三方模块,socket和模板语法用别人的,路由与视图函数对应关系是自己实现的

    3. tornado

      是一个异步非阻塞,可以做游戏服务器,socke和模板语法,路由与视图函数对应关系都是自己写的

    A:socket部分
    B:路由与视图函数对应关系
    C:模板语法
    Django:
    A用的别人的 wsgiref
    B自己写的
    C自己写的
    Flask
    A用的别人的 werkzeug(基于wsgiref)
    B自己写的
    C用的别人的 jinja2
    Tornado
    三者全是自己写的

    五、django框架的安装和使用

    1. django版本问题

      django主要分为1.x与2.x,市面比较流行的是1.x

    2. django安装

      pip install django==1.11.11

    3. 查看django是否安装成功

      diango-admin

    4. 注意事项

      1. 计算机名称不要使用中文
      2. 一个pycharm一个项目
      3. 项目下面尽量不要使用中文命名
    5. 项目下面的app

      • 一个项目可以有多个app
      • 一个app就是一个项目下的一个功能,一个django的项目就类似于一所大学,然后多个app就是大学里面的各个学院
      • 一个app就相当于一个功能模块,这样的好处有益于,每个人开发互不干扰,都可以独立自主的开发一个功能模块,app之间互不影响
      • django支持多个app
    6. 命令行创建django项目

      • 创建django项目:django-admin startproject 项目名
      • 启动项目:python manage.py runserver
      • 创建一个app: python manage.py startapp app名称
    7. 使用parcharm创建项目

      1. 创建的项目会有和当前项目名相同的文件夹

      2. 会自动创建一个app

      3. 启动项目要保证唯一的端口,默认8000

      4. 项目创建的结构

        ·跟项目名同名的文件夹

        ​ settings.py 暴露给用户的配置文件,

        ​ urls.py :配置与视图函数对应关系

        应用名

        ​ migrations文件, 存放的是数据库迁移记录的

        admin.py djaong管理员后台管理

        ​ apps.py 注册相关

        ​ models.py 模型类

        tests.py 做测试文件

        views.py 存放的是与url对应的视图函数

        templates 文件夹,用来存放html文件

        manage.py django入口文件

    8. 注意:

      1. 使用命令创建项目不会自动创建一个app,需要手动命令创建,并且需要到配置文件中手动配置
      2. 使用命令创建的项目不会自动模板文件,需要手动创建,并且需要到配置文件中手动配置os.path.join(BASE_DIR, 'templates')
      3. parcharm可以自动创建一个app,创建多个需要通过命名手动创建,并且要到配置文件中配置
      4. parcharm可以自动创建templates文件夹
    9. 数据库迁移命令

      • python manage.py makemigrations
      • python manage.py migrage

    在当下的阶段,必将由程序员来主导,甚至比以往更甚。
  • 相关阅读:
    面向中后台复杂场景的低代码实践思路
    树莓派使用raspivid实时预览视频
    grep rn无法匹配文件中的字符串
    C++有关std::sort和std::bind那些事
    C++有关unordered_map::erase的奇怪bug
    ssh与tar的奇妙组合
    git指定仓库使用特定用户名提交
    在win7下搭建php+apache+mysql环境
    神乎其神的技艺
    好书推荐——《启动大脑》
  • 原文地址:https://www.cnblogs.com/randysun/p/11756293.html
Copyright © 2011-2022 走看看