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 项目名称
查看项目
$ ls
查看目录结构
$ tree
settings.py
是项⽬的整体配置⽂件。urls.py
是项⽬的URL
配置⽂件。wsgi.py
是项⽬与WSGI
兼容的Web
服务器⼊⼝。manage.py
是项⽬管理⽂件,通过它管理项⽬。
进入项目dj01
$ cd dj01$ ls
执行manage.py
文件
$ python manage.py runserver
访问服务器浏览器输入http://127.0.0.1:8000/
Ctrl+C
退出服务器
四、创建项目子应用
在Web
应⽤中,通常有⼀些业务功能模块是在不同的项⽬中都可以复⽤的,故在开发中通常将⼯程项⽬拆分为不同的⼦功能模块,各功能模块间可以保持相对的独⽴,在其他⼯程项⽬中需要⽤到某个特定功能模块时,可以将该模块代码整体复制过去,达到复⽤。
1.创建项目子应用
$ python manage.py startapp 子应用名
2.应用子目录说明
admin.py
⽂件跟⽹站的后台管理站点配置相关。apps.py
⽂件⽤于配置当前⼦应⽤的相关信息。migrations
⽬录⽤于存放数据库迁移历史⽂件。models.py
⽂件⽤户保存数据库模型类。tests.py
⽂件⽤于开发测试⽤例,编写单元测试。views.py
⽂件⽤于编写Web应⽤视图。
3.注册安装⼦应⽤
创建出来的⼦应⽤⽬录⽂件虽然被放到了⼯程项⽬⽬录中,但是Django⼯程并不能⽴即直接使⽤该⼦应⽤,需要注册安装后才能使⽤。
$ vim settings.py
在⼯程配置⽂件settings.py
中,INSTALLED_APPS
项保存了⼯程中已经注册安装的⼦应⽤,初始⼯程中的INSTALLED_APPS
如下:
注册安装⼀个⼦应⽤的⽅法,即是将⼦应⽤的配置信息⽂件apps.py
中的Config
类添加到INSTALLED_APPS
列表中。
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 应用
3.查看生成的SQL语句
$ python manage.py sqlmigrate dj 0001
4.执⾏迁移⽂件
执⾏迁移⽂件:根据第⼀步⽣成的语句在数据库中创建表
$ python manage.py migrate
六、站点管理
1. 管理界⾯本地化
本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化.
中国⼤陆地区使⽤简体中⽂, 时区使⽤亚洲/上海时区, 注意这⾥不使⽤北京时区.
LANGUAGE_CODE = 'zh-Hans'TIME_ZONE = 'Asia/Shanghai'
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$
登录
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)
4.修改默认输出
在模型类中添加__str__
方法,优化模型类输出
优化后
七、视图和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 !')
2.配置路由
根路由settings.py
文件
ROOT_URLCONF = 'dj01.urls'
- 配置根路由
from django.contrib import adminfrom django.urls import path, includeurlpatterns = [ path('admin/', admin.site.urls), path('', include('dj.urls.py'))]
- 配置子路由
from django.urls import path, re_pathfrom dj.views import showurlpatterns = [ re_path('^show/$', show)
查找视图的过程 :
-
1.请求者在浏览器地址栏中输⼊
URL
, 请求到Django
服务器. -
2.
Django
服务器获取URL
请求路径. -
3.然后与程序中的
URLconf
逐条匹配. -
4.如果匹配成功则调⽤对应的视图.
-
5.如果所有的
URLconf
都没有匹配成功.则返回404
错误.
八、模板
1.模板使⽤步骤
- 创建模板
- 设置模板查找路径
- 模板接收视图传⼊的数据
- 模板处理数据
2. 创建模板
在应⽤同级⽬录下创建模板⽂件夹templates
. ⽂件夹名称固定写法.
在templates
⽂件夹下, 创建应⽤同名⽂件夹,例:dj
在应⽤同名⽂件夹下创建⽹⻚模板⽂件. 例 :index.html
3. 设置模板查找路径
settings.py
文件下的TEMPLATES
'DIRS': [os.path.join(BASE_DIR, 'templates')],
BASE_DIR
当前工程项目dj01
下
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
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)
5. 编辑前端⻚⾯获取并处理数据
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head> <h1 style="color: red"> {{ title }} </h1><body></body></html>
6.配置路由
urlpatterns = [ re_path('^show/$', views.show), re_path('^index/$', views.templates)]
7.测试
运行服务器
$ python manage.py runserver
浏览器输入127.0.0.1:8000/index/
页面显示Hello Django Templates
九、配置文件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=False
和ALLOW_HOSTS。
3. 本地语⾔与时区
Django
⽀持本地化处理,即显示语⾔与时区⽀持本地化。
本地化是将显示的语⾔、时间等使⽤本地的习惯,这⾥的本地化就是进⾏中国化,中国⼤陆地区使⽤简体中⽂,时区使⽤亚洲/上海时区,注意这⾥不使⽤北京时区表示。
初始化的⼯程默认语⾔和时区为英语和UTC
标准时区
LANGUAGE_CODE = 'en-us' # 语⾔TIME_ZONE = 'UTC' # 时区# 时区
将语⾔和时区修改为中国⼤陆信息
LANGUAGE_CODE = 'zh-Hans' # 中文TIME_ZONE = 'Asia/Shanghai' # 时区上海
4. 静态⽂件
项⽬中的css
、image
、js
都是静态⽂件。⼀般会将静态⽂件放到⼀个单独的⽬录中,以⽅便管理。在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>
在浏览器中就可以使⽤127.0.0.1J8000/static/hello.html
来访问。
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 = '名称'