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/')
    

    重定向是什么?

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



  • 相关阅读:
    css3圆形修边按钮
    TinyCC的Java绑定版本 TCC4Java
    简单实用蓝色jQuery日期选择插件
    QE不是变形金刚
    javascript 进度条的几种方法
    使用Java进行 a + b = c 计算
    Javascript jquery css 写的简单进度条控件
    Drupal SellingSpace模板
    恢复Windows 10自带的微软正黑字体
    提取配置文件中无注释的内容方法--findstr
  • 原文地址:https://www.cnblogs.com/zyk01/p/10176278.html
Copyright © 2011-2022 走看看