第一章 Django建站基础
1.1网站的定义及组成
网站(website)组成:
(1)域名:www.baidu.com
(2)空间服务器:虚拟主机,独立服务器,vps
(3)DNS域名解析
(4)网站程序
(5)数据库
1.2网站运行原理
(1)在浏览器输入网址:www.baidu.com
(2)浏览器解析网站地址中包含的信息,http协议与域名(baidu.com)
(3)浏览器与isp通信,在DNS中查找网址对应的IP地址,将IP地址发送到浏览器的DNS服务,最后向该IP地址发送请求
(4)浏览器从网址获取IP地址和端口,打开tcp套接字连接,实现浏览器与web服务器连接
(5)浏览器根据用户操作向服务器发送对应的HTTP请求
(6)web服务器接收到请求后,根据请求信息进行查找HTML页面。页面存在返回给浏览器。页面不存在,返回404错误。
1.3网站开发流程
(1)需求分析
(2)规划静态内容
(3)设计阶段
(4)程序开发阶段
(5)测试和上线
(6)维护推广
1.4Django框架模式(MTV)
-
M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
-
T 代表模板 (Template):负责页面展示给用户(html)
-
V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
优点:
(1)对象关系映射( Object Relational Mapping, ORM):通过定义映射类来构建数据模型,型与关系数据库连接起来,使用ORM框架内置的数据库接口可实现复杂的数据操作。
(2)URL设计:开发者可以设计任意的URL (网站地址),而且还支持使用正则表达式设计
(3)模板系统:提供可扩展的模板语言,模板之间具有可继承性。
(4)表单处理:可以生成各种表单模型,而旦表单具有有效性检验功能。(5)Cache系统:完善的缓存系统,可支持多种缓存方式。
(6)Auth认证系统:提供用户认证、权限设置和用户组功能,功能扩展性强。
(7)国际化:内置国际化系统,方便开发出多种语言的网站。
(8)Admin后台系统:内置Admin后台管理系统,系统扩展性强
1.5Django2与Django1区别
●简化URL路由语法:使得Django.urls.path( )方法的语法更简单。功能的导入由模块Django.uris 实现,如from Django.urls import include, path, re_path.
●Admin后台系统:支持主流移动设备并新增属性ModelAdmin. autocomplete_fields 和方法ModelAdmin.get_autocomplete_fields( ).
●用户认证: PBKDF2 密码哈希默认的迭代次数从36000增加到100 000.
●Cache (缓存): cache.set_many()现在返回一个列表,包含插入失败的键值。
●视图类: ContextMixin.extra_context属性允许在View.as_view()中添加上下文。
●Pagination (分页):增加Paginator.get_page( ),可以处理各种非法页面参数,防止异常。
●Templates (模板):提高Engine. get_default( )在第三方模块的用途,
●Validators (验证器):不允许Charfield及其子类的表单输入为空,
●File Storage (文件存储): File.open( )可以用于上下文管理器。例如with file.open( )as f。
●连接MySQL不再使用mysqldb模块,改用为mysqlclient,两者之间并没有太大的使用差异。●Management Commands (管理命令):inspectdb将MySQL 的无符号整数视作PositiveIntegerField或者PositiveSmalllntegerFiede字段类型。
1.6安装Django(windows环境)
在python已经安装完成前提下(Python 3.7.3):
pip install django==2.2 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
(2.2版本相对稳定,不指定版本默认最新版本的3.XXX)
校验是否安装成功
进入python交互解释器:
import django
django.__version__
#结果显示:'2.2'
1.7.Django简单使用
1.进入django目录
F:\django————》cmd
2.创建一个新项目:HelloDjango
django-admin startproject HelloDjango
3.新建项目应用App
#进入HelloDjango目录:
cd HelloDjango
#新建app:
python manage.py startapp HelloAPP
将app添加到settings.py文件
# Application definition
#app应用
INSTALLED_APPS = [
......
'django.contrib.staticfiles',
#添加项目应用HelloApp
'HelloAPP',
]
#pycharm新建项目不需要以下操作
#命令行方式创建项目,需要手动创建templates文件夹,并对其进行标记。并将templates添加到属性配置:
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
#添加路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]
,
'APP_DIRS': True,
4.启动服务器
#默认端口8000
python manage.py runserver
#浏览器中打开127.0.0.1:8000可以成功显示django项目运行情况
#指定端口
python manage.py runserver 8001
#(一般情况不需要改动)
5.数据库迁移
#生成数据迁移文件
python manage.py makemigrations
#数据迁移
python manage.py migrate
参考书籍《Django web应用开发实战》