首页 > 代码库 > 上课前django需要的前期准备

上课前django需要的前期准备

这里只是记录上课前要做的django准备

创建项目

django-admin startproject mysite  可以用这个命令

也可以直接用pycharm创建

创建app

进入到刚才创建的项目目录中执行命令:

python manage.py startapp app01

配置基本设置

在setting中设置

技术分享
"""
Django settings for day20 project.

Generated by ‘django-admin startproject‘ using Django 1.10.4.

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

For the full list of settings and their values, see
https://docs.djangoproject.com/en/1.10/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/1.10/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = y*3z2@4&^vhvq(g(=8t-%q-(8v$_$tjbez-wjoirii$8_r6d=*

# 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,
    app01,
]

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 = day20.urls

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

WSGI_APPLICATION = day20.wsgi.application


# Database
# https://docs.djangoproject.com/en/1.10/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/1.10/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/1.10/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/1.10/howto/static-files/

STATIC_URL = /static/
STATICFILES_DIRS=(
    os.path.join(BASE_DIR, static),
                  )
View Code

如果有多个app要用include

同名项目的url设置

from django.conf.urls import url,include
from django.contrib import admin

urlpatterns = [
    url(r^admin/, admin.site.urls),
    url(r^cmdb/, include("app01.urls")),
    url(r^monitor/, include("app02.urls")),
]

在app里面新建立一个url.py

from django.conf.urls import url,include
from django.contrib import admin
from app01 import views

urlpatterns = [
    url(r^login/, views.login),
    url(r^index/, views.index),
    url(r^user_info/, views.user_info),
    url(r^userdetail-(?P<nid>\d+)/, views.user_detail),
    url(r^userdel-(?P<nid>\d+)/, views.user_del),
    url(r^useredit-(?P<nid>\d+)/, views.user_edit),
    url(r^orm/, views.orm),
]

这样就实现了多个app共从

下面是需要导入的模块项目的url中

from django.conf.urls import url,include
from django.contrib import admin
from app01 import views

先这里加入创建的app不加数据库创建不了数据

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

注销一个csrf的报错

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

模版的路径配置 

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

数据库的配置

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

python manage.py makemigrations   创建表结构

python manage.py migrate       生效

********** 注意 ***********
Django默认使用MySQLdb模块链接MySQL
主动修改为pymysql,在project同名文件夹下的__init__文件中添加如下代码即可:
import pymysql
pymysql.install_as_MySQLdb()

静态资源的配置(要在项目目录新建立一个static目录)

STATIC_URL = /static/
STATICFILES_DIRS=(
    os.path.join(BASE_DIR, static),
                  )

启动项目

直接pycharm点击启动

或者命令;python.exe G:/python/day20/manage.py runserver 8000 

 

上课前django需要的前期准备