zoukankan      html  css  js  c++  java
  • django学习笔记1

    我的服务器是Ubuntu 16.04.6 LTS,而且已经搭建好adconda虚拟环境。


    一、创建项目和程序

    1、创建一个项目

    在目标目录(“/www/wwwroot/”)下执行 django-admin startproject mydjango命令

    image_thumb1

    目录下多了一个目录django目录,进入该目录查看

    image_thumb3

    manage.py       --项目管理文件

    __init__.py      --说明mysite这个目录是一个python包

    setting.py        --项目的配置文件

    urls.py            -- 进行url路由的配置

    wsgi.py          -- web服务器和django交互的入口

    2、创建应用程序

    项目创建完成以后,接着要创建应用(App),相当于网站的功能,一个APP相当于一个模块,可以有一个或多个网页。

    APP的创建由文件manage.py来完成。

    如:

        python manage.py startapp app1  #  app1为应用名
    本例中创建两个常用的app,一个是主页面 index 另一个是管理页面  user
    image_thumb6
    从上图中可以看到index有多个.py文件和migrations文件夹

    admin.py        --后台管理文件

    models.py      --写数据库和项目的内容

    tests.py         -- 写测试代码的文件

    views.py      --视图文件(接收请求,进行处理)

    此时在本机上可以运行,但是在服务器上还不行,需要进一步配置


    二、django 的配置信息

    Django的settings文件包含Django应用的所有配置项。

    一个简单的项目必须有基本的配置信息:项目的路径、密钥的配置、域名访问权限、APP列表和中进件,一般情况下会使用数据库,数据库的基本配置也在setting.py中。我们查看下这个项目的setting.py,(注意,setting.py 在与项目同名的目录中)

    image_thumb8

    用vim命令查看

    image_thumb10


    详细文件如下:

    """
    Django settings for mydjango project.

    Generated by 'django-admin startproject' using Django 2.1.15.

    For more information on this file, see
    https://docs.djangoproject.com/en/2.1/topics/settings/

    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/2.1/ref/settings/
    """

    import 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.1/howto/deployment/checklist/

    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = 'x^sag-ots^)q#1)9+4afsmzdtjl&er034mf4az=3!zgdpkf-f@'

    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True

    ALLOWED_HOSTS = []


    # Application definition

    INSTALLED_APPS = [
         'django.contrib.admin',
         'django.contrib.auth',
         'django.contrib.contenttypes',
         'django.contrib.sessions',
         'django.contrib.messages',
         'django.contrib.staticfiles',
    ]

    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',
    ]

    ROOT_URLCONF = 'mydjango.urls'

    TEMPLATES = [
         {
             'BACKEND': 'django.template.backends.django.DjangoTemplates',
             'DIRS': [],
             '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',
                 ],
             },
         },
    ]

    WSGI_APPLICATION = 'mydjango.wsgi.application'


    # Database
    # https://docs.djangoproject.com/en/2.1/ref/settings/#databases

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


    # Password validation
    # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators

    AUTH_PASSWORD_VALIDATORS = [
         {
             'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
         },
         {
             'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
         },
         {
             'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
         },
         {
             'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
         },
    ]


    # Internationalization
    # https://docs.djangoproject.com/en/2.1/topics/i18n/

    LANGUAGE_CODE = 'en-us'

    TIME_ZONE = 'UTC'

    USE_I18N = True

    USE_L10N = True

    USE_TZ = True


    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/2.1/howto/static-files/

    STATIC_URL = '/static/'


    在这里首先有一段注释,告诉我们这是mydjango项目的设置文件,使用Django 2.1.15由' Django -admin startproject'生成。等等

    接着引用了os模块

    这里不一一赘述,一些参考的博客说明的非常详细

    https://www.cnblogs.com/guokaifeng/p/11187315.html

    https://www.cnblogs.com/jrri/p/11492011.html

    注意一点:

    ALLOWED_HOSTS = [] 必须改为ALLOWED_HOSTS = [‘*’],否则出了localhost和127.0.0.1无法访问。

    这个例子中以后会探讨sqlserver和mysql交换数据,数据的配置以后再研究 。

    这里仅配置了允许访问的地址、APP、语言和时区,配置的setting.py文件如下:


    """
    Django settings for mydjango project.
    
    Generated by 'django-admin startproject' using Django 2.1.15.
    
    For more information on this file, see
    https://docs.djangoproject.com/en/2.1/topics/settings/
    
    For the full list of settings and their values, see
    https://docs.djangoproject.com/en/2.1/ref/settings/
    """
    
    import 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.1/howto/deployment/checklist/
    
    # SECURITY WARNING: keep the secret key used in production secret!
    SECRET_KEY = 'x^sag-ots^)q#1)9+4afsmzdtjl&er034mf4az=3!zgdpkf-f@'
    
    # SECURITY WARNING: don't run with debug turned on in production!
    DEBUG = True
    
    ALLOWED_HOSTS = ['*']
    
    
    # Application definition
    
    INSTALLED_APPS = [
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
    
        'index',
        'user',
    ]
    
    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',
    ]
    
    ROOT_URLCONF = 'mydjango.urls'
    
    TEMPLATES = [
        {
            'BACKEND': 'django.template.backends.django.DjangoTemplates',
            'DIRS': [],
            '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',
                ],
            },
        },
    ]
    
    WSGI_APPLICATION = 'mydjango.wsgi.application'
    
    
    # Database
    # https://docs.djangoproject.com/en/2.1/ref/settings/#databases
    
    DATABASES = {
        'default': {
            'ENGINE': 'django.db.backends.sqlite3',
            'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        }
    }
    
    
    # Password validation
    # https://docs.djangoproject.com/en/2.1/ref/settings/#auth-password-validators
    
    AUTH_PASSWORD_VALIDATORS = [
        {
            'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
        },
        {
            'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
        },
    ]
    
    
    # Internationalization
    # https://docs.djangoproject.com/en/2.1/topics/i18n/
    
    LANGUAGE_CODE = 'zh-hans'# 语言
    
    TIME_ZONE = 'Asia/Shanghai' #时区
    
    USE_I18N = True
    
    USE_L10N = True
    
    USE_TZ = True
    
    
    # Static files (CSS, JavaScript, Images)
    # https://docs.djangoproject.com/en/2.1/howto/static-files/
    
    STATIC_URL = '/static/'
    
    
    
    



    未完待续

    人在中年,一事无成,瞎学
  • 相关阅读:
    HDU 3401 Trade
    POJ 1151 Atlantis
    HDU 3415 Max Sum of MaxKsubsequence
    HDU 4234 Moving Points
    HDU 4258 Covered Walkway
    HDU 4391 Paint The Wall
    HDU 1199 Color the Ball
    HDU 4374 One hundred layer
    HDU 3507 Print Article
    GCC特性之__init修饰解析 kasalyn的专栏 博客频道 CSDN.NET
  • 原文地址:https://www.cnblogs.com/jilingxf/p/13290808.html
Copyright © 2011-2022 走看看