Django 安装与项目创建

Django介绍

  • 版本推荐 1.11.11

  • 下载方式

命令行:pip3 install django==1.11.11  // 通用 pip install 模块 == 版本号
pycharm下载:推荐换成国内源速度快
  • 验证是否下载成功
django-admin    // linux等系统可以能会出错,有的时候不是没安装上去的问题,直接定位到文件夹添加环境变量即可

创建django项目的方式

  • 命令行创建
创建django项目
django-admin startproject 项目名

创建app应用
python3 manage.py startapp app01

启动django项目
python3 manage.py runserver 

ps:用命令行创建django默认不会自动创建templates文件夹
需要你手动自己创建(注意改文件夹路径是否被添加配置文件中)
  • pycharm创建
创建django项目
FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理

创建app
第一种:
pycharm命令行创建,可以直接进入Django项目
python3 manage.py startapp app01

第二种:
Tools下面run manage task功能栏
startapp app01

启动方法:点小绿色箭头
            
强调:
1.用django一定要保证只有一个在运行状态  切记切记!!!!!!!
2.一定记得清浏览器的缓存

app(应用)的概念

  • 一个django项目就是一所大学,app就是大学里面的学院,一个项目中可以有多个app

  • 注意新创建的app需要在配置文件中注册才能生效

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',  # 这个地方写上我们创建的app 可以简写只写包名
]

Django中各个文件的作用

  • 应用名app:
migrations  数据库迁移记录相关数据 数据库修改改动的时候会保存在这里面
admin.py    django后台管理相关
models.py   模型表相关
views.py    视图函数相关
  • 项目名
settings.py  配置文件
urls.py        路由与视图函数的映射关系
wsgi         http拆包解包
  • 主目录下
templates     项目用到的所有的html文件
manage.py     django入口文件

配置文件的各个作用

"""
Django settings for ceshi project.

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

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

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

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = '(h-%mwaw%*lg6m$rt@-622!z4#^7&b_c6h!=3t3!yr0r82z16='
# 通用密钥

# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
# DEBUG模式可以调试bug

ALLOWED_HOSTS = []
# 允许访问的ip,不写的话都可以访问

# Application definition = 应用程序定义

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'app01.apps.App01Config',
]
# Django自带的七个app,自己创建app必须写入进去
# installed_apps. 已安装的app


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',
]
# middleware 中间键:相当于门卫任何进出都要经过它


ROOT_URLCONF = 'ceshi.urls'
# 主要用来处理请求的文件,找多对应的url执行


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',
            ],
        },
    },
]
# 模版文件夹相关,这个地方要注意是否添加了存放html的文件夹 


WSGI_APPLICATION = 'ceshi.wsgi.application'

# Django的内置服务器(例如 runserver)将使用的WSGI应用程序对象的完整Python路径。 django-admin startproject 管理命令将创建一个带有 application 可调用的简单 wsgi.py 文件,并将此设置指向该 application。

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

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}
# Django连接mysql等等的数据库们可以修改

# Password validation
# https://docs.djangoproject.com/en/1.11/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.11/topics/i18n/

LANGUAGE_CODE = 'en-us'  # 默认的语言

TIME_ZONE = 'UTC'  # 默认的时区

USE_I18N = True  # 一个布尔值,指定是否应启用Django的翻译系统

USE_L10N = True  # 一个布尔值,指定是否默认启用数据的本地化格式。如果这被设置为 True, Django将使用当前语言环境的格式显示数字和日期。

USE_TZ = True  # 一个布尔值,指定数据时间是否将是时区感知的默认或不。如果这被设置为 True,Django将在内部使用时区感知的数据时间

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

STATIC_URL = '/static/'  # 静态文件,引用位于 STATIC_ROOT 中的静态文件时使用的URL。

django小白必会三板斧

from django.shortcuts import render,HttpResponse,redirect
  • HttpResponse 返回给浏览器字符串

  • def index(request):
        return HttpResponse('你好')
  • render 返回一个html页面

  • def reg(request):
        return render(request, 'reg.html')
  • redirect 重定向

  • def login(request):
        return redirect('http://www.baidu.com')

俩种传递值给前端的操作

# 第一种: 把上面所有的变量都会传递给html
def reg(request):
    user_dict = {'name': 'lmd', 'age': 18}
    return render(request, 'reg.html', locals())
  
# 第二种:传指定的变量
def reg(request):
            user_dict = {'name':'jason','password':'123'}
            return render(request,'reg.html',{'user_dict':user_dict})

模版语法:

views:user_dict = {'name':'jason','password':'123'}
{{user_dict}} # 拿到的是一个字典{'name': 'jason', 'age': 22} 
{{user_dict.name}}  # 拿到的是name对应的值,不支持.get方式

猜你喜欢

转载自www.cnblogs.com/limengda/p/10982387.html