缺点 :
相比较直接使用SQL语句操作数据库,有性能损失.
根据对象的操作转换成SQL语句,根据查询的结果转化成对象, 在映射过程中有性能损失
MVC模式:(模型,视图,控制器)架构(前后端分离,它们各自处理自己的任务)
model(模型) :是应用程序中处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。
view(视图) :是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。
controller(控制器) :是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。(业务逻辑层)
MVT模式:有一种程序设计模式叫MVC,其核心思想是分工、解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性,实现向后兼容。
M全拼为Model :与MVC中的M功能相同,负责和数据库交互,进行数据处理。
V全拼为View :与MVC中的C功能相同,接收请求,进行业务处理,返回应答。
T全拼为Template :与MVC中的V功能相同,负责封装构造要返回的html。
url 专业术语为(统一资源标识符)
https://www.baidu.com/aaa/aa?name=’’#
scheme domin path query
协议 域名 路径 条件 #为定位标识,开发中为了缩短链接长度一般需要去掉它
PV 访问总量 不按IP计数的 100000
UV 访问总量 根据IP去重 1000-500
虚拟环境
mkvirtualenv # 创建虚拟环境
rmvirtualenv # 删除虚拟环境
workon # 进入虚拟环境、查看所有虚拟环境
deactivate # 退出虚拟环境
pip
pip install # 安装依赖包
pip uninstall # 卸载依赖包
pip list # 查看已安装的依赖包
pip freeze # 冻结当前环境的依赖包
pip install Django==2.0.4
Django默认端口为:8000
创建项目:
python manage.py runserver :运行服务器命令
django-admin startproject 项目名 :在所在目录下,黑窗口创建django项目文件夹
python .\manage.py startapp 子应用名称 :项目文件夹下,创建子应用
此文件夹是主要用来写py逻辑层的
views.py文件 :在app中 用来编写对应的 路由视图函数
使用视图时需要进行两步操作:
1.定义def视图
def视图函数中必须要有一个request参数,用来接收用户的请求
一般情况,def视图函数需要返回一个具有response响应的内容
2.配置URLconf
在urls路由主控文件下注册def视图函数:
from 文件夹名 import 文件名
path(‘路由名’,文件名.函数名)
3.创建好项目后首先需要在settings.py中配置中文与时区:
107.LANGUAGE_CODE = ‘zh-Hans’
# 项目的语言配置 需要改成中文 zh-Hans
109.TIME_ZONE = ‘Asia/Shanghai’
# 项目的时区配置 需要改成 Asia/Shanghai 亚洲/上海
django项目文件夹目录:
同名的文件夹 是项目主文件夹
settings.py :是项目的整体配置文件。
urls.py :是项目的URL配置文件。
(路由的主控文件,通过路由访问到想要去到的页面)
wsgi.py :是项目与WSGI兼容的Web服务器入口,项目部署WSGI并发服务器时所需要的配置文件
(UWSGI 服务器的支持脚本 一般和 NGINX 服务器联合使用 项目上线时会用到)
manage.py :是项目管理文件,通过它管理项目。
子应用目录:
migrations目录 :用于存放数据库迁移历史文件。
admin.py 文件 :用于跟网站的后台管理站点配置相关。
apps.py 文件 :用于配置当前子应用的相关信息。
models.py 文件 :用于用户保存数据库模型类。
views.py 文件 :用于编写Web应用视图。 (用来编写对应的 路由视图函数)
tests.py 文件 :用于开发测试用例,编写单元测试。
settings.py中的配置:
16.BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(file)))
# 获取到当前django的绝对工作目录(不管如何移动项目都会准确定位此工作目录)
23.SECRET_KEY = ‘tf(@-v3&%fm&6nreh#j0(5^=p&ny8r$22ycwrc@ipax1ttaq’
# 加密的hash值以及保护某些签名数据的关键密钥
26.DEBUG = True
# 开启调试模式 当项目上线为False时需要设置 允许访问的客户,为True时不需要设置
28.ALLOWED_HOSTS = []
# 设置当前允许哪些ip或域名可以访问主机 [’*’] 任何人都可以访问 列表中填写的是ip地址 不限个数
33.INSTALLED_APPS = []
# 与数据库相关 任何会使用到数据库的子应用都要在此进行注册 把文件夹名写入即可
# 也提供了标签及过滤器的应用
43.MIDDLEWARE = []
# django中间件 当用户发起请求到我们给用户返回结果的过程中 django帮我们做的一些事情
53.ROOT_URLCONF = ‘qqq.urls’
# 指向路由主控文件 如果有人访问首先找到的是它然后由它来指向路由主控文件
55.TEMPLATES = [{’’,‘DIRS’: [os.path.join(BASE_DIR,‘template’)],’’},]
# html文件的存储地址 # 使用拼接路径方法注册定位template文件夹的绝对路径
71.WSGI_APPLICATION = ‘qqq.wsgi.application’
# WSGI服务器配置项,找到当前django下的wsgi引入APP文件(项目上线时要配置的东西,暂定了解)
77.DATABASES = {’’}
# 数据库配置 默认为一个非常轻量级的小型数据库 sqlite3 没有账号密码
88.AUTH_PASSWORD_VALIDATORS = []
# django中自带用户系统的验证(检查admin界面下的用户密码强度的验证程序列表,而非自定义)
107.LANGUAGE_CODE = ‘zh-Hans’
# 项目的语言配置 需要改成中文 zh-Hans
109.TIME_ZONE = ‘Asia/Shanghai’
# 项目的时区配置 需要改成 Asia/Shanghai 亚洲/上海
121.STATIC_URL = ‘/static/’
# 设置静态文件夹
123.STATICFILES_DIRS = (os.path.join(BASE_DIR,‘static’),)
# 配置静态文件的绝对路径 需要手写
# 使用拼接路径方法注册定位static文件夹的绝对路径(注意有逗号)