zoukankan      html  css  js  c++  java
  • Django学习笔记(一)Django基础

    新建项目

    django-admin startproject my_site #会在当前目录新建my_site目录,可自行修改目录名
    django-admin startproject my_site . #会在当前目录直接建立my_site项目
    

    项目创建完成后,接着创建app。app相当于网站的功能,每个app代表网站的一个或多个网页。

    python managy.py startapp index
    python managy.py startapp user
    

    启动服务器

    python manage.py runserver
    

    ##基本配置信息 ```python import os

    主要通过os模块读取当前项目在系统的具体路径,在项目创建时自动生成。一般情况下无需更改。

    Build paths inside the project like this: os.path.join(BASE_DIR, ...)

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))

    Quick-start development settings - unsuitable for production

    See https://docs.djangoproject.com/en/2.2/howto/deployment/checklist/

    秘钥配置,在项目创建时自动生成,主要用于重要数据的加密处理。一般情况下无需更改。

    SECRET_KEY = 'o017!*o4nd8(z(8)-n-i-%3c)y#8r2os@j8-#-9n47i2e6q005'

    调试模式。在开发调试阶段应设为True,在开发调试过程中会自动检测代码是否发生更改,一判断是否刷新重启系统。

    如项目部署上线,应将其设为False,否则会泄露系统的相关信息。

    DEBUG = True

    域名访问权限,设置可访问的域名。当DEBUG为True且此项为空时,只允许localhost在浏览器访问。

    当DEBUG为False时此项为必填项,否则程序无法启动。若想允许所有域名访问,可设ALLOWED_HOSTS = ['*']

    ALLOWED_HOSTS = []

    App列表,告诉Django有哪些app。如果在项目中创建了app,必须在列表中添加

    INSTALLED_APPS = [
    'django.contrib.admin', # 内置的后台管理系统
    'django.contrib.auth', # 内置的用户认证系统
    'django.contrib.contenttypes', # 记录项目中所有model元数据
    'django.contrib.sessions', # 用于标识当前访问网站的用户身份,记录相关用户信息
    'django.contrib.messages', # 消息提示功能
    'django.contrib.staticfiles', # 查找静态资源路径(静态资源指在网站中不会改变的文件,如CSS文件、JavaScript文件、图片等)
    'index', # 自己定义的app
    'user',
    ]

    
    ######    在中文版中,“应用程序”对应于“application”,“应用”对应于“app”。在一般的 Web 开发中,这二者几乎没什么区别,但是在 Django 中二者有一个明显的区别:application 是指一个完整的 Web 程序,而 app 是指一个可复用的包,可以“插入”其他Django 应用程序中。
    <br> 
    ##静态资源
      静态资源指在网站中不会改变的文件,如CSS文件、JavaScript文件、图片等,这些文件的存放主要由settings.py配置,配置信息如下:
    
    ```python
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/2.2/howto/static-files/
    
    STATIC_URL = '/static/'
    

    上述配置文件将静态资源放在文件夹static,而static文件夹只能放在App里面。浏览器输入http://127.0.0.1:8000/static/01.png会显示图片。若把static文件夹放在根目录会显示404。若要放在根目录,则要在settings.py中配置STATICFILES_DIRS属性

    STATICFILES_DIRS = [os.path.join(BASE_DIR,'static')]
    

    配置好以后在浏览器中输入http://127.0.0.1:8000/static/01.png即会显示图片

    模板路径

    模板是一种特殊的html文档,其嵌入了一些python能识别的变量和指令,程序解析这些指令,生成HTML网页返回给用户浏览。

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',  #定义模板引擎,用于识别模板里的变量和指令。
            'DIRS': [],        #设置模板所在路径
            'APP_DIRS': True,  #是否在App里查找模板文件
            'OPTIONS': {       #用于填充在RequestContext中上下文的调用函数,一般不做修改
                'context_processors': [
                    'django.template.context_processors.debug',
                    'django.template.context_processors.request',
                    'django.contrib.auth.context_processors.auth',
                    'django.contrib.messages.context_processors.messages',
                ],
            },
        },
    ]
    

    模板配置一般配置DIRS即可。在项目的根目录和index文件夹内分别创建templates文件夹,配置如下

    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [os.path.join(BASE_DIR, 'templates'),
                        os.path.join(BASE_DIR, 'index/templates')],
            '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',
                ],
            },
        },
    ]
    

    ##数据库配置 Django提供四种数据库引擎: 'django.db.backends.postgresql' 'django.db.backends.mysql' 'django.db.backends.sqlite3' 'django.db.backends.oracle' 默认使用Sqlite3数据库 ```python # Database # https://docs.djangoproject.com/en/2.2/ref/settings/#databases

    DATABASES = {
    'default': {
    'ENGINE': 'django.db.backends.sqlite3',
    'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
    }

      若要使用MySQL,先安装MySQL连接模块mysqlclient(直接使用pip安装即可),接着在MySQL新建数据库
    

    SHOW DATABASES;
    CREATE DATABASE my_db CHARACTER SET utf8;

    然后在settings.py中进行配置:

    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.mysql',
            'NAME': 'my_db',
            'USER': 'root',
            'PASSWORD': '123456',
            'HOST': '127.0.0.1',
            'POST': '3306',
        }
    }
    

    ##中间件 ```python MIDDLEWARE = [ 'django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', ] ```
  • 相关阅读:
    QT1 HelloWorld
    SDL2.0 播放YUV
    vim寄存器
    Makefile模板
    apue初学--DIR
    apue初学--平台的判断
    各种推导式
    文件操作
    list tuple dict set
    字符串和编码
  • 原文地址:https://www.cnblogs.com/pengweii/p/12087907.html
Copyright © 2011-2022 走看看