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

    重定向是什么?

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



    "

  • 相关阅读:
    了解教育网访问情况
    .NET开源社区存在的问题
    欢迎大家谈谈Windows Live Mail desktop的使用感受
    [公告]新版排行榜页面发布
    国外技术新闻[来自Digg.com]
    首页小改进
    [SQL Server 2005]String or binary data would be truncated
    Linux获得真正3D桌面 开源支持者喜不自禁
    新版 .net开发必备10大工具
    使用新类型Nullable处理数据库表中null字段
  • 原文地址:https://www.cnblogs.com/zyk01/p/11375996.html
Copyright © 2020-2023  润新知