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



    未完待续

    人在中年,一事无成,瞎学
  • 相关阅读:
    java 导入导出的 命令
    点击 table 单元格 取值
    SQL Server存储过程创建和修改
    js正则匹配过滤 特殊字符
    java 学习框架
    Table 表单样式
    Table 表单
    Table 固定表头的几种方法
    .Net 高效开发之不可错过的实用工具
    sql 批量插入数据到Sqlserver中 效率较高的方法
  • 原文地址:https://www.cnblogs.com/jilingxf/p/13290808.html
Copyright © 2011-2022 走看看