zoukankan      html  css  js  c++  java
  • 【Django】安装及配置

    @


    Django官网下载


    MVC框架与MTV框架

    MVC,全名Model View Controller,是软件工程中的一种软件架构模式.
    把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller).

    优点:耦合性低、重用行高、生命周期成本低等.
    在这里插入图片描述
    Django框架的设计模式借鉴了MVC架构的思想,也是分成三部分,来降低各个部分之间的耦合性.
    Django框架的不同之处在于它拆分的三部分为:Model(模型)、Template(模版)、View(视图),也就是MTV框架.


    Django的MTV模式

    • Model(模型):负责业务对象与数据库的对象(ORM).
    • Template(模版):负责如何把页面展示给用户.
    • View(视图):负责业务逻辑,并在适当的时候调用Model和Template.

    此外,Django还有一个urls分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template.


    Django框架图示

    在这里插入图片描述




    安装及配置

    在命令行执行如下命令:
    pip3 install django==1.11.11

    创建一个Django项目

    执行如下命令创建一个名为"mysite"的Django项目:
    django-admin startproject mysite


    目录介绍

    在这里插入图片描述


    运行Django项目

    命令行执行:
    python manage.py runserver 127.0.0.1:8080


    启动Django报错

    UnicodeEncodeError...
    出现这种错误通常是因为计算机名为中文,将其改为中文并重启电脑便可以了.

    SyntaxError: Generator expression must be parenthesized
    保这个错误很大可能是因为使用了Python3.7.0.
    目前(2018-06-12)Python3.7.0和Django还有点兼容性问题,换回Python3.6环境即可.


    模版文件配置

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates')]   # template文件夹位置
            ,
            'APP_DIRS': True,
            'OPTIONS': {
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

    静态文件配置

    STATIC_URL = '/static/'  # HTML中使用的静态文件夹前缀
    STATICFILES_DIRS = [
        os.path.join(BASE_DIR, 'static'),  # 静态文件存放位置
    ]
    

    关系如图:
    在这里插入图片描述

    刚开始学习时可在配置文件中注释掉csrf中间件,方便表单提交测试:

    MIDDLEWARE = [
        'django.middleware.security.SecurityMiddleware',
        'django.contrib.sessions.middleware.SessionMiddleware',
        'django.middleware.common.CommonMiddleware',
        # 'django.middleware.csrf.CsrfViewMiddleware',  # csrf中间件
        'django.contrib.auth.middleware.AuthenticationMiddleware',
        'django.contrib.messages.middleware.MessageMiddleware',
        'django.middleware.clickjacking.XFrameOptionsMiddleware',
    ]
    


    APP的创建

    一个Django项目可以分为很多个APP,用来隔离不同功能模块的代码.

    方式一:命令行创建:

    python manage.py startapp app名称
    

    注意当前所在路径,必须在项目的根目录下.

    方式二:使用PyCharm创建:
    在这里插入图片描述
    点击:Tools --> Run manage.py Task...
    然后在下方弹出的命令窗口中输入:startapp app名称

    创建完毕了以后,还需要在settings.py文件中添加对应的APP.
    如下:

    # 本项目中的所有APP
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        'blog.apps.BlogConfig',   # 添加自己新建的app(可简写为'blog')
    ]
    

    创建超级用户

    注意:必须在迁移数据后,才可成功创建超级用户.

    python manage.py createsuperuser
    

    输入以上命令后,根据提示输入用户名、邮箱、密码、确认密码。密码的要求至少是不八位,不能和邮箱太接近,两次密码需要一致。



    Djange基础必备三件套

    from django.shortcuts import HttpResponse, render, redirect
    
    

    HttpResponse

    返回一个指定的字符串
    内部传入一个字符串参数,它会帮我们做该做的工作(如:返回响应状态行),然后将传入的字符串返回给浏览器.

    如下:

    def index(request):
        # 业务逻辑代码
        return HttpResponse('OK')
    

    render

    返回一个HTML文件
    除了要接收request参数外,还接收一个待渲染的模版文件和一个保存具体数据的字典参数.
    将数据填充进模版文件,最后把结果返回给浏览器.

    如下:

    def index(request):
        # 业务逻辑代码
        return render(request, 'index.html', {'name': 'zyk', 'sex': 'boy'})
    

    redirect

    跳转到指定的网页
    即重定向,接收一个URL参数,表示跳转到指定的URL..

    如下:

    def index(request):
        # 业务逻辑代码
        return redirect('/home/')
    

    重定向是什么?

    在这里插入图片描述
    在这里插入图片描述



  • 相关阅读:
    MIne FirstBlog
    P6563 [SBCOI2020]一直在你身旁
    P6563 [SBCOI2020]一直在你身旁
    T122085 [SBCOI2020]时光的流逝
    LC 918. Maximum Sum Circular Subarray
    1026 Table Tennis
    LC 1442. Count Triplets That Can Form Two Arrays of Equal XOR
    LC 1316. Distinct Echo Substrings
    LC 493. Reverse Pairs
    1029 Median (二分)
  • 原文地址:https://www.cnblogs.com/zyk01/p/10176278.html
Copyright © 2011-2022 走看看