• Python主流web框架之Django框架


    内容概要

    • Python主流web框架之Django框架

      Python主流web框架
      简介
      主要目录结构
      django小白必会三板斧
      django请求生命周期流程图
      静态文件资源
      网络请求方式
      form表单重要参数
      request对象方法
      pycharm链接数据库(了解)
      django链接MySQL

       

    Python主流web框架

    1.django框架
    大而全 自身携带的功能非常的多 类似于航空母舰

    2.flask框架
    小而精 自身携带的功能非常的少 类似于游骑兵
    该框架的诸多都需要依赖于第三方模块 如果将该框架的第三方模块全部整合到一起甚至可以超过django
       
    3.tornado框架
    异步非阻塞 速度非常快甚至可以充当游戏服务器
    """
    web框架底层原理其实大差不差 我们在学习的时候应该先重点学习一个
    等熟练掌握之后再去学习其他的 千万不要同时学习多个 很容易混乱 走火入魔
    """

    django简介

    """
    同步:任务提交之后原地等待任务的返回结果 期间不做任何事
    异步:任务提交之后不原地等待任务的结果 期间可以做其他事 一旦有结果会自动提醒
    """
    1.版本问题
    django1.X 同步框架
    django1.11
     django2.X 同步框架
    django2.2
     django3.X 支持异步
    django3.2
    django4.X 支持异步
    django4.2
    ps:目前使用比较广泛的是django2.2版本(其实版本差距不大 选择任何一个都可)
     
    2.注意事项
    1.计算机名称不要出现中文
    2.项目中所有的文件名称不要出现中文
     3.多个项目文件尽量不要嵌套,做到一项一夹
     4.python解释器版本不同可能会出现启动报错

    3.框架基本使用
    pip install django==2.2.11
     pip install django==1.11.11
     命令行
       1.创建django项目
         django-admin startproject mysite
       2.启动django项目
         cd mysite
         python3 manage.py runserver IP:PORT
       3.创建应用
         '''django项目类似于一个空壳子 里面真正干活的是应用:每个应用都有具体的业务逻辑和业务范围 我们在教学阶段没有具体名字的情况下就采用app01 02 03'''
         python3 manage.py startapp app01
    pycharm快捷方式
    支持自动创建一个应用并且自动创建templates文件夹

    主要目录结构

    """
    1.创建的应用必须要去配置文件中注册
    INSTALLED_APPS = [
      'app01.apps.App01Config', 完整写法
      'app01' 简易写法
    ]
    2.有时候配置文件中的参数会出现错乱(pycharm自动创建)
    'DIRS': [os.path.join(BASE_DIR, 'templates')]
    如果是命令行创建 那么上述列表为空 需要自己填写
    """

    项目目录
    项目同名目录
    settings.py 配置文件
       urls.py 路由层(对应关系)
    manage.py django入口文件
     db.sqlite3 django自带的小型数据库
     应用目录
    migrations目录 orm迁移记录
    admin.py 后台管理
       apps.py 注册
       models.py 模型层(与数据库打交道 非常重要)
       views.py 视图层(专门编写业务逻辑)
    templates目录 模板层(专门存储html文件)

    django小白必会三板斧

    """
    使用方式与我们自己编写的框架几乎一致
    在urls.py中添加对应关系
    在views.py中编写业务逻辑
    """
    HttpResponse 主要用于返回字符串类型的数据

    render 主要用于返回html页面

    redirect 主要用于页面重定向

    django请求生命周期流程图

    参考群内截图

    静态文件资源

    页面上需要使用的不经常修改变动的文件资源 都可以称之为是静态文件
    css文件、js文件、图片文件、第三方框架文件
    针对静态文件资源的存储 一般建议放在static目录下
    如果该目录下的资源也非常的混乱 那么还可以继续划分
    static目录
    css目录
       js目录
       img目录
       others目录
       
    针对静态文件资源的访问需要单独配置才可以 否则无法使用
    # 静态文件资源访问路径配置
    STATICFILES_DIRS = [
       os.path.join(BASE_DIR, 'static')
    ]

    # 静态文件资源访问动态解析
    STATIC_URL = '/static/'
    {% load static %}
    <link rel="stylesheet" href="{% static 'bootstrap-3.3.7-dist/css/bootstrap.min.css' %}">

    网络请求方式

    1.GET请求
    朝服务端索要数据 可以携带额外的参数(大小2KB左右 并且数据敏感度不高)
    url?name=jason&age=18
    2.POST请求
    朝服务端提交数据 可以携带额外的数据(大小没有限制 并且可以携带敏感数据)
    请求体

    form表单重要参数

    action参数
    控制数据的提交地址
    1.不写 默认朝当前页面所在的地址提交
    2.写全路径 https://www.baidu.com/
    3.写后缀 /home/

    method参数
    控制数据的提交方式
    默认是get
    可以切换为post

    '''在提交post请求的时候 django会校验csrf 前期可以直接注释该功能'''
    MIDDLEWARE = [
    # 'django.middleware.csrf.CsrfViewMiddleware',
    ]

    request对象方法

    request.method  				  获取当前请求方式   结果是纯大写的字符串
    request.POST 获取post请求提交的普通数据
    request.POST.get() 获取列表最后一个数据
    request.POST.getlist() 获取整个列表数据
    request.GET 获取url问号后面携带的数据
    request.GET.get() 获取列表最后一个数据
    request.GET.getlist() 获取整个列表数据

    pycharm链接数据库(了解)

    类似于navicat的功能 首次链接数据库需要下载对应的驱动 否则无法链接

    django链接MySQL

    django默认使用的是sqlite3 但是该数据库很小 功能也不健全 

    1.配置文件
     DATABASES = {
         'default': {
             'ENGINE': 'django.db.backends.mysql',
             'NAME': 'zm_day07',
             'HOST':'127.0.0.1',
             'PORT':3306,
             'USER':'root',
             'PASSWORD':'jason123',
             'CHARSET':'utf8'
        }
    }
    2.模块准备
     mysqlclient模块
  • 相关阅读:
    zoj 3697(模拟+dp)
    hdu 2444(二分图最大匹配)
    基础建设者的悲歌
    ANDROID 常用音乐软件 歌曲存放位置
    Winform 类似于WINDOWS的选择文件夹对话框
    我听到过的一个精彩的软件纠错故事
    cs类文件中输出脚本的方法
    NeatUpload的安装使用
    asp.net获取系统已安装字体的方法
    (转载)你真的了解分层架构吗?——写给被PetShop"毒害"的朋友们
  • 原文地址:https://www.cnblogs.com/A121/p/16728937.html
Copyright © 2020-2023  润新知