zoukankan      html  css  js  c++  java
  • Django简介、安装和入门

    python三大主流Web框架

    Django

    优点:大而全,自身携带的组件和功能特别特别多,类似于航空母舰

    缺点:过于笨重,所需功能不多时,Django依然提供这些功能,占据内存

    Flask

    优点:小而精 自身携带的组件和功能特别特别少 就类似于游骑兵,自身功能比较少 但是第三方支持该框架的模块特别特别多

    缺点:受限于第三方模块,尤其是版本更新

    Tornado

    优点:异步非阻塞,天然支持高并发,甚至可以开发游戏服务器

    Django介绍

    参照 https://baike.baidu.com/item/django/61531?fr=aladdin

    https://www.cnblogs.com/Dominic-Ji/articles/10982272.html

    https://code.ziqiangxuetang.com/django/django-intro.html

    Django是一个开源MVC(模型model,视图view,控制器Control)模式的Web应用框架,由Python写成。其核心组件有:

    • 用于创建模型的对象关系映射
    • 为最终用户设计较好的管理界面
    • URL设计
    • 设计者友好的模板语言
    • 缓存系统

    它其实也是一个MTV的设计模式,即模型Model,视图View和模版Template。由于控制器接受用户输入的部分由框架自行处理,因此,django更关注的是模型、模板和视图,它们各自的职责是

    层次 职责
    模型(Model),数据存取层 处理与数据相关的所有事务:存取、验证有效性、包含哪些方法以及数据之间的关系等
    模板(Template),展示层 处理与数据展示相关的事务:页面美化或在其他类型文档中的展示效果
    视图(View),业务逻辑层 存取模型及调用合适的模板等相关逻辑,是模型和模板的桥梁

    Django 安装

    • 注意事项
      • 计算机名称不能有中文
      • 项目文件不能有中文
      • 一个pycharm窗口就是一个单独的完整的项目
    • 版本选择

    推荐使用1.11.09~1.11.13版本(稳定)。

    ps:如果已安装其他版本,无须卸载,在安装新版本时,会自动先卸载之前的版本再安装

    • 安装

    命令行:pip3[根据python解释器] install django=1.11.11[版本号]

    测试是否安装成功命令行:django-admin

    • 基本命令(cmd中执行)

      • 创建django 项目(背下来)

      注意:命令行创建的django项目没有templates模板文件夹,需要手动创建,且自行在settings文件中配置路径

      django-admin.py startproject 项目名称[必须是合法的python包名]
      
      • 启动django项目(背下来)

      注意:必须在项目目录下执行,runserver 后可接主机名和端口号,默认是本机地址127.0.0.1:8000

      python3[解释器名称] manage.py runserver [host:port]
      
      • 创建app(application,相当于一个个独立的功能模块)(背下来)

      一般一个项目有多个app,通用的app也可以在多个项目中使用

      注意:必须在项目目录下创建,创建完成后一定要去settings.py 中配置

      python3 startapp app名称[必须是合法的python包名]
      或
      django-admin.py startapp app名称
      
    • django项目文件介绍

      • urls.py:路由视图函数(views.py)对象关系,项目的总路由
      • views.py:视图函数(日常编程全在这,重点掌握)
      • models.py:模型类(ORM)
      • templates文件夹:存放views.py中的函数渲染的html模板
      • admin.py:django后台管理
      • settings.py:项目配置文件,比如数据库配置、静态文件的位置
      • tests.py:测试文件

    django入门必会三板斧-HttpResponse,render,redirect

    HttpResponse:将字符串返回给浏览器

    # views.py
    def index(request):
        # 业务逻辑代码
        return HttpResponse('hello, this is index code -from HttpResponse')
    

    render:将html文档(动态页面也可)返回给浏览器

    注意:模板的渲染,将数据在后端按照模板语法放入html文档中对应的位置

    # views.py
    def index(request):
        # 业务逻辑代码
        # # 传参:2个参数,第一个参数必须是request,第二参数是返回的html文档
        # return render(request, 'index.html')
        # 传参:3个参数,第一个参数必须是request,第二参数是返回的html文档
        # 第三参数是保存数据的字典参数,将数据填充到html文档后,再将html文档返回
        # 类似jinja2
        return render(request, 'index.html', {'name': 'lee', 'hobby': ['study', 'smoke']})
    

    redirect:重定向,转到指定的URL

    # views.py
    def index(request):
        # return redirect('/login/')  # 本地的路径
        return redirect('https://www.luffycity.com/home')
    

    踩过的坑

    1.代码修改了,刷新页面没有效果

    可能是同一个端口开了多个服务,django运行的是第一次启动的服务;也有可能时浏览器缓存问题

  • 相关阅读:
    [YTU]_2436( C++ 习题 输出日期时间--友元类)
    [YTU]_2435 ( C++ 习题 输出日期时间--友元函数)
    病毒侵袭
    石子合并(区间DP经典例题)
    AC自动机模板2
    【模板】最近公共祖先(LCA)
    华华给月月出题
    线性筛素数
    华华开始学信息学
    华华和月月种树
  • 原文地址:https://www.cnblogs.com/xiaodan1040/p/12152550.html
Copyright © 2011-2022 走看看