> 文档中心 > Django入门总结

Django入门总结

在这里插入图片描述

文章目录

    • 一、Django介绍
      • 1.官网定义
      • 2.简单理解
      • 3.Django特点
    • 二、虚拟环境搭建
      • 1.为什么要使用虚拟环境
      • 2.安装虚拟环境
      • 3.创建虚拟环境
      • 4. 使⽤虚拟环境
    • 三、创建Django项目工程
      • 1.创建虚拟环境
      • 2.创建Django项目
    • 四、创建项目子应用
      • 1.创建项目子应用
      • 2.应用子目录说明
      • 3.注册安装⼦应⽤
      • 4.设置PyCharm环境
    • 五、Django模型
      • 1.定义模型类
      • 2.创建迁移文件
      • 3.查看生成的SQL语句
      • 4.执⾏迁移⽂件
    • 六、站点管理
      • 1. 管理界⾯本地化
      • 2. 创建管理员
      • 3. 注册模型类
      • 4.修改默认输出
    • 七、视图和URL
      • 1.定义视图函数
      • 2.配置路由
    • 八、模板
      • 1.模板使⽤步骤
      • 2. 创建模板
      • 3. 设置模板查找路径
      • 4. 编辑视图函数传递数据给模板
      • 5. 编辑前端⻚⾯获取并处理数据
      • 6.配置路由
      • 7.测试
    • 九、配置文件settings.py
      • 1. BASE_DIR
      • 2. 调试DEBUG
      • 3. 本地语⾔与时区
      • 4. 静态⽂件
      • 5. 应⽤配置apps.py

一、Django介绍

在这里插入图片描述

1.官网定义

Django是⼀个⾼级Python Web框架,⿎励快速开发和简洁实⽤的设计。

它由经验丰富的开发⼈员构建,它解决了Web开发的⼤部分麻烦,因此您可以专注于编写应⽤程序⽽⽆需重新发明轮⼦,是免费和开源的。

2.简单理解

Django框架是给开发⼈员快速开发⽹站的⼯具包。有点像精装修房⼦,直接拎包⼊住即可。

3.Django特点

  • 开发速度快
  • 安全性高
  • 高扩展性
  • 稳定性高

二、虚拟环境搭建

1.为什么要使用虚拟环境

不同项目使用不同版本的Django框架,默认安装到本机相同目录下,容易造成版本冲突。

2.安装虚拟环境

$ pip3.8 install virtualenv$ pip3.8 install virtualenvwrapper

3.创建虚拟环境

提示:如果不指定python版本,默认安装的是python3.6的虚拟环境

$ mkvirtualenv -p python3.8 虚拟环境名称例 :$ mkvirtualenv -p python3.8 py38dj22_env

4. 使⽤虚拟环境

查看已创建的虚拟环境命令 :

$ workon

使⽤某个虚拟环的命令 :

$ workon 虚拟环境名称

退出虚拟环境的命令 :

$ deactivate

删除虚拟环境的命令 :

$ rmvirtualenv 虚拟环境名称

4.如何在虚拟环境中安装⼯具包

确认是否进⼊当前虚拟环境 (workon 虚拟环境名)

$ pip install ⼯具包名==版本号$ pip list 查看已安装的⼯具包

三、创建Django项目工程

1.创建虚拟环境

查看虚拟环境

$ workon

创建虚拟环境py38_dj22

$ mkvirtualenv 虚拟环境名称

安装Django2.2框架模块

$ pip install Django==2.2

查看是否安装成功

$ pip list

2.创建Django项目

在桌面创建djproject文件

$ cd Desktop/$ mkdir djproject

进入djproject文件

cd djprojects/

创建项目dj01

$ django-admin startproject 项目名称

Django入门总结

查看项目

$ ls

Django入门总结

查看目录结构

$ tree

Django入门总结

Django入门总结

  • settings.py是项⽬的整体配置⽂件。
  • urls.py是项⽬的URL配置⽂件。
  • wsgi.py是项⽬与WSGI兼容的Web服务器⼊⼝。
  • manage.py是项⽬管理⽂件,通过它管理项⽬。

进入项目dj01

$ cd dj01$ ls

Django入门总结

执行manage.py文件

$ python manage.py runserver

Django入门总结

访问服务器浏览器输入http://127.0.0.1:8000/
Django入门总结

Ctrl+C退出服务器


四、创建项目子应用

Web应⽤中,通常有⼀些业务功能模块是在不同的项⽬中都可以复⽤的,故在开发中通常将⼯程项⽬拆分为不同的⼦功能模块,各功能模块间可以保持相对的独⽴,在其他⼯程项⽬中需要⽤到某个特定功能模块时,可以将该模块代码整体复制过去,达到复⽤。

1.创建项目子应用

$ python manage.py startapp 子应用名

Django入门总结

2.应用子目录说明

Django入门总结

  • admin.py⽂件跟⽹站的后台管理站点配置相关。
  • apps.py⽂件⽤于配置当前⼦应⽤的相关信息。
  • migrations⽬录⽤于存放数据库迁移历史⽂件。
  • models.py⽂件⽤户保存数据库模型类。
  • tests.py⽂件⽤于开发测试⽤例,编写单元测试。
  • views.py⽂件⽤于编写Web应⽤视图。

3.注册安装⼦应⽤

创建出来的⼦应⽤⽬录⽂件虽然被放到了⼯程项⽬⽬录中,但是Django⼯程并不能⽴即直接使⽤该⼦应⽤,需要注册安装后才能使⽤。

$ vim settings.py

在⼯程配置⽂件settings.py中,INSTALLED_APPS 项保存了⼯程中已经注册安装的⼦应⽤,初始⼯程中的INSTALLED_APPS如下:
Django入门总结

注册安装⼀个⼦应⽤的⽅法,即是将⼦应⽤的配置信息⽂件apps.py中的Config类添加到INSTALLED_APPS列表中。
Django入门总结

4.设置PyCharm环境


五、Django模型

1.定义模型类

modles.py文件

from django.db import models# Create your models here.class FilmInfo(models.Model):    fid = models.AutoField(primary_key=True)    fname = models.CharField(max_length=20)class PeopleInfo(models.Model):    uid = models.AutoField(primary_key=True)    uname = models.CharField(max_length=30)    gender = models.BooleanField()    dj = models.ForeignKey(FilmInfo, on_delete=models.CASCADE)

2.创建迁移文件

$ python manage.py makemigrations 应用

Django入门总结

3.查看生成的SQL语句

$ python manage.py sqlmigrate dj 0001

Django入门总结

4.执⾏迁移⽂件

执⾏迁移⽂件:根据第⼀步⽣成的语句在数据库中创建表

$ python manage.py migrate

Django入门总结

Django入门总结

Django入门总结

六、站点管理

1. 管理界⾯本地化

本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化.

中国⼤陆地区使⽤简体中⽂, 时区使⽤亚洲/上海时区, 注意这⾥不使⽤北京时区.

LANGUAGE_CODE = 'zh-Hans'TIME_ZONE = 'Asia/Shanghai'

Django入门总结

2. 创建管理员

创建管理员的命令 :

python manage.py createsuperuser
(awei) awei@ubuntu:~/Desktop/DjangoProjects/dj01$ python manage.py createsuperuser用户名 (leave blank to use 'awei'): admin电子邮件地址: flymeawei@163.comPassword: @Lmw133212Password (again): @Lmw133212Superuser created successfully.(awei) awei@ubuntu:~/Desktop/DjangoProjects/dj01$ 

Django入门总结

登录
Django入门总结

3. 注册模型类

在应⽤的admin.py⽂件中注册模型类
需要导⼊模型模块 :from book.models import BookInfo,PeopleInfo

from django.contrib import adminfrom dj.models import FilmInfo, PeopleInfo# Register your models here.admin.site.register(FilmInfo)admin.site.register(PeopleInfo)

Django入门总结

Django入门总结

4.修改默认输出

在模型类中添加__str__方法,优化模型类输出
Django入门总结

优化后
Django入门总结

七、视图和URL

1.定义视图函数

from django.shortcuts import renderfrom django.http import HttpResponse# Create your views here.def show(request):    """    print Hello Django2.2 !    :param request:     :return:     """    return HttpResponse('Hello Django2.2 !')

Django入门总结

2.配置路由

根路由settings.py文件

ROOT_URLCONF = 'dj01.urls'

Django入门总结

  • 配置根路由
from django.contrib import adminfrom django.urls import path, includeurlpatterns = [    path('admin/', admin.site.urls),    path('', include('dj.urls.py'))]

Django入门总结

  • 配置子路由
from django.urls import path, re_pathfrom dj.views import showurlpatterns = [    re_path('^show/$', show)

Django入门总结

查找视图的过程 :

  • 1.请求者在浏览器地址栏中输⼊URL, 请求到Django服务器.

  • 2.Django服务器获取URL请求路径.

  • 3.然后与程序中的URLconf逐条匹配.

  • 4.如果匹配成功则调⽤对应的视图.

  • 5.如果所有的URLconf都没有匹配成功.则返回404错误.


八、模板

1.模板使⽤步骤

  • 创建模板
  • 设置模板查找路径
  • 模板接收视图传⼊的数据
  • 模板处理数据

2. 创建模板

在应⽤同级⽬录下创建模板⽂件夹templates. ⽂件夹名称固定写法.

templates⽂件夹下, 创建应⽤同名⽂件夹,例:dj

在应⽤同名⽂件夹下创建⽹⻚模板⽂件. 例 :index.html
Django入门总结

3. 设置模板查找路径

settings.py文件下的TEMPLATES

 'DIRS': [os.path.join(BASE_DIR, 'templates')],

Django入门总结
BASE_DIR当前工程项目dj01

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

Django入门总结

4. 编辑视图函数传递数据给模板

from django.shortcuts import render# Create your views here.def templates(request):    """    xian shi dao templates    :param request:     :return:     """    data = {'title': 'Hello Django Templates'}    return render(request, 'dj/index.html', data)

Django入门总结

5. 编辑前端⻚⾯获取并处理数据

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Title</title></head>    <h1 style="color: red"> {{ title }} </h1><body></body></html>

Django入门总结

6.配置路由

urlpatterns = [    re_path('^show/$', views.show),    re_path('^index/$', views.templates)]

Django入门总结

7.测试

运行服务器

$ python manage.py runserver

浏览器输入127.0.0.1:8000/index/页面显示Hello Django Templates
Django入门总结


九、配置文件settings.py

1. BASE_DIR

BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

当前⼯程的根⽬录,Django会依此来定位⼯程内的相关⽂件,我们也可以使⽤该参数来构造⽂件路径。

2. 调试DEBUG

调试模式,创建⼯程后初始值为True,即默认⼯作在调试模式下。
作⽤:

  • 修改代码⽂件,程序⾃动重启
  • Django程序出现异常时,向前端显示详细的错误追踪信息,例如:

当我在dj/urls.py ⽂件末尾任意输⼊LLO,服务器会⾃动重启,会输出相应的错误提示。

  • ⽽⾮调试模式下,仅返回Server Error (500)

注意:部署线上运⾏的Django不要运⾏在调式模式下,记得修改DEBUG=FalseALLOW_HOSTS。

3. 本地语⾔与时区

Django⽀持本地化处理,即显示语⾔与时区⽀持本地化。

本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化,中国⼤陆地区使⽤简体中⽂,时区使⽤亚洲/上海时区,注意这⾥不使⽤北京时区表示。

初始化的⼯程默认语⾔和时区为英语和UTC标准时区

LANGUAGE_CODE = 'en-us' # 语⾔TIME_ZONE = 'UTC' # 时区# 时区

将语⾔和时区修改为中国⼤陆信息

LANGUAGE_CODE = 'zh-Hans'  # 中文TIME_ZONE = 'Asia/Shanghai'  # 时区上海

4. 静态⽂件

项⽬中的cssimagejs都是静态⽂件。⼀般会将静态⽂件放到⼀个单独的⽬录中,以⽅便管理。在html⻚⾯中调⽤时,也需要指定静态⽂件的路径,Django中提供了⼀种解析的⽅式配置静态⽂件路径。静态⽂件可以放在项⽬根⽬录下,也可以放在应⽤的⽬录下,由于有些静态⽂件在项⽬中是通⽤的,所以推荐放在项⽬的根⽬录下,⽅便管理。

为了提供静态⽂件,需要配置两个参数:

  • STATICFILES_DIRS 存放查找静态⽂件的⽬录
  • STATIC_URL 访问静态⽂件的URL前缀

示例:
1) 在项⽬根⽬录下创建static⽬录来保存静态⽂件。
2) 在film_manager/settings.py中修改静态⽂件的两个参数为

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

3)此时在static添加的任何静态⽂件都可以使⽤⽹址/static/⽂件在static中的路径来访问了。

例如,我们向static⽬录中添加⼀个hello.html⽂件

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Hello</title></head><body>    <h1 style="color: blue">Hello World!</h1></body></html>

Django入门总结

在浏览器中就可以使⽤127.0.0.1J8000/static/hello.html来访问。
Django入门总结

5. 应⽤配置apps.py

在每个应⽤⽬录中都包含了apps.py⽂件,⽤于保存该应⽤的相关信息。

在创建应⽤时,Django会向apps.py⽂件中写⼊⼀个该应⽤的配置类,如

from django.apps import AppConfigclass FilmConfig(AppConfig):name = 'dj'

我们将此类添加到⼯程settings.py中的INSTALLED_APPS列表中,表明注册安装具备此配置属性的应⽤。

AppConfig.name属性表示这个配置类是加载到哪个应⽤的,每个配置类必须包含此属性,默认⾃动⽣成。

AppConfig.verbose_name属性⽤于设置该应⽤的直观可读的名字,此名字在Django提供的Admin管理站点中会显示,如

from django.apps import AppConfigclass UsersConfig(AppConfig):name = 'dj'verbose_name = '名称'

Django入门总结

WIFI共享精灵