首页 > 其他 > 详细

初识Django

时间:2019-02-26 20:17:32      阅读:147      评论:0      收藏:0      [点我收藏+]

一.Django项目的创建与介绍

安装Django: 

在指定解释器环境下安装Django 1.11.x

在真实python3环境下: pip3 install django==1.11.x

查看Django版本:

diango-admin --version

如果安装出错,采用管理员命令行

创建项目:

先前往目标路径,然后执行:diango-admin startproject project_name

‘‘‘
project_name:项目目录,包含项目最基本的一些配置
    -- __init__.py:模块的配置文件
    -- settings.py:配置总文件
    -- urls.py:url配置文件,django项目中的所有页面都需要对其配置url地址
    -- wsgi.py:(web server gateway interface),服务器网关接口,python应用与web服务器直接通信的接口
templates:模板文件夹,存放html文件的(页面),支持使用Django模板语言(DTL),也可以使用第三方(jinja2)
manage.py:项目管理器,与项目交互的命令行工具集的入口,查看支持的所有命令python3 manage.py
‘‘‘

二.应用的创建与介绍

Django是面向应用开发,在应用中完成具体的业务逻辑;应用app指的是项目中的一个功能模块,一个项目可以拥有多个功能模块,但至少有一个,Django称之为app。

创建app(在项目目录下):python3 manage.py startapp app_name

去项目的settings文件添加 应用名 到INSTALLED_APPS

‘‘‘
migrations:数据迁移(移植)模块,内容都是由Django自动生成
    -- __init__.py
__init__.py
admin.py:应用的后台管理系统配置
apps.py:django 1.9后,本应用的相关配置
models.py:数据模型模块,使用ORM框架,类似于MVC模式下的Model层
tests.py:自动化测试模块,可以写自动化测试脚本
views.py:执行相应的逻辑代码模块
‘‘‘

 终端启动项目(项目根目录下):python3 manage.py runserver 127.0.0.1:7777

三.配置文件简介

项目目录下settings.py文件

技术分享图片
"""
Django settings for dg02 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 = &1(3_+f3o*#_hxzeyq1js^@%kkhmo8#@#$6*-dg2(6sd_l#w(-

# SECURITY WARNING: don‘t run with debug turned on in production!
# 开发阶段采用debug
DEBUG = True
# 可以访问该项目的host们
ALLOWED_HOSTS = []


# Application definition
# 配置app
INSTALLED_APPS = [
    django.contrib.admin,
    django.contrib.auth,
    django.contrib.contenttypes,
    django.contrib.sessions,
    django.contrib.messages,
    django.contrib.staticfiles,
    app.apps.AppConfig,
]
# 中间件
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 = dg02.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 = dg02.wsgi.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‘),
#     }
# }

DATABASES = {
    default: {
        ENGINE: django.db.backends.mysql,
        NAME: dg2,
        HOST: 127.0.0.1,
        PORT: 3306,
        USER: root,
        PASSWORD: root
    }
}

# 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

USE_L10N = True

USE_TZ = True


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

# 静态文件
# STATIC_URL = ‘/test/‘
# 静态文件请求的根路由
# STATIC_URL = ‘/static/‘  # 可以代表n个文件夹
# href="/static/"

# STATICFILES_DIRS = [
#     os.path.join(BASE_DIR, ‘static‘),  # 就是配置static对应检索的文件夹们
#     os.path.join(BASE_DIR, ‘static1‘),
# ]
# href="/static/css/index.css"


# 最终版本
STATIC_URL = /static/
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, static)
]
# href="/static/css/index.css"
View Code

四.Pycharm搭建项目

1.选择有django环境的解释器创建项目

2.选择项目目录(从项目目录开始,目录文件夹及子文件夹不要出现中文,保证电脑名字不为中文)

3.配置默认模板语言,模板路径,app名

4.启动

五.生命周期

1.浏览器发送请求

2.wsgi服务器接收到请求,将请求解析交给Django

3.Django中间件过滤请求信息,交给路由

4.路由完成业务逻辑的分发,到指定app下views中指定的视图函数

5.视图函数完成具体的业务逻辑,返回响应结果

6.将处理结果通过服务器返回给浏览器

六.项目响应请求

响应:

from django.shortcuts import render, redirect, HttpResponse

# Create your views here.


def index(request):
    
    return  HttpResponse(响应了)

模板页面:

from django.shortcuts import render, redirect, HttpResponse

# Create your views here.


def index(request):

    return render(request, index.html)

重定向:

from django.shortcuts import render, redirect, HttpResponse

# Create your views here.


def index(request):

    return redirect(/重定向的路由)

七.静态文件加载

静态文件的根路由 => 规定了加载静态文件的起点

#1. 项目目录下 settings.py文件

STATIC_URL = /static  # static指的是路由

# 下方规定静态文件可以放入的文件夹
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, static)  # static指的才是文件夹
]


# 直接导致模板页面导入静态文件起点:
# <link rel="stylesheet" href="/static/css/index.css">

#2.在项目根目录下创建static文件夹
#3.静态文件就放在static根目录或子目录下
#4.获取静态文件:/static/目标文件(可以包含static子文件夹路径)

八.请求及数据

‘‘‘
请求路径:
1.空着:默认向当前路径发送请求
2.http://127.0.0.1:8801/testAction/:向testAction路径发送请求
3./testAction/: 向testAction路径发送请求(推荐)

在视图函数中
请求方式:request.method
GET请求获取数据:request.GET.get(‘key‘, None)  # 当key不存在,用None替换
POST请求获取数据:request.POST.get(‘key‘, None)  # 当key不存在,用None替换
‘‘‘

九.配置Mysql完成数据迁移

‘‘‘
1.在settings.py配置Mysql数据库信息
DATABASES = {
    ‘default‘: {
        ‘ENGINE‘: ‘django.db.backends.mysql‘,
        ‘NAME‘: ‘dg2‘,
        ‘HOST‘: ‘127.0.0.1‘,
        ‘PORT‘: 3306,
        ‘USER‘: ‘root‘,
        ‘PASSWORD‘: ‘root‘
    }
}

2.在项目或应用的init文件中修改连接数据库的模块pymysql
import pymysql
pymysql.install_as_MySQLdb()

3.在项目目录下,执行(生成迁移数据,没有映射到数据库):python3 manage.py makemigrations

4.将迁移数据映射到数据库:python3 manage.py migrate

‘‘‘

十.简单的增删改查

‘‘‘
# 增
User.objects.create(usr=‘abc‘.pwd=‘123‘)  # 第一种方式
user=User(usr=‘abc‘,pwd=‘123‘)
user.save()  # 第二种方式

# 删
User.objects.filter(id=1).delete()

# 改
User.objects.filter(pwd=‘123‘).update(pwd=‘11‘)

# 查
User.objects.filter(pwd=‘11‘).all()
User.objects.filter(pwd=‘11‘).first()

‘‘‘

 

初识Django

原文:https://www.cnblogs.com/wangke0917/p/10439470.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!