1. web应用的概念
http的默认端口号 80
https的默认端口号 443
1. web应用是什么???
通过浏览器访问的应用都是web应用。
2. 软件的开发模式
C/S B/S
服务端需要具备的特征:24小时对外提供服务
# 本质上B/S架构也是 C/S架构
3. web应用程序的优点
1.只需要一个浏览器
2.节省磁盘空间
3.客户端不需要主动更新,服务端更新即可
4. web应用的缺点
1.一旦服务端出现问题,客户端立马受影响
2.兼容性问题
"""
web框架:
就是在固定的位置书写固定的代码。
"""
# python中的三大主流框架:
1. Django框架(大而全)
类似于航空母舰
2. flask框架(小而精)
依赖于第三方模块
3. tornado框架
异步高性能框架
2. MVC 和 MTV
"MVC"
M:model(与数据打交道)
V:View(视图,页面)
C:controller(控制器,主要写逻辑)
S:项目大的话controller还会抽象出来service服务层(公共的地方)
"MTV"
M:model(模型层,与数据相关)
T:template(模板:html页面)
V:views(主要写逻辑)
3. Django下载与安装
1. django的版本问题:
django1.x 老项目在用
django2.x 新项目在用
django3.x 刚出来的版本
# 我们学习使用django 1.x
# 安装django
pip3 install django==1.1.29
# 如何验证django是否安装成功
在cmd中,输入django-admin,如果有输出信息,就代表安装成功
3.1 创建django项目
"可以提前气候到项目要保存的位置"
# 1. 命令行创建
django-admin startproject 项目名
# 2. pycharm创建
# 3. 命令行创建和pycharm创建的区别
1. pycharm创建
自动生成templates文件夹
settings.py文件
"""
TEMPLATES = [
'DIRS': [os.path.join(BASE_DIR,'templates')]
]
"""
2. 命令行创建
没有templates文件夹
settings.py文件
"""
TEMPLATES = [
'DIRS': [],
]
"""
# 所以命令行创建时,记得手动填写路径
3.2 启动django项目
"前提,先切换到manage.py所在的文件夹下"
manage.py是django项目的入口文件
# 1. 命令行启动
python3 manage.py runserver
python3 manage.py runserver 127.0.0.1:8000
python3 manage.py runserver 8080
"django的默认端口号:8000"
# 2. pycharm启动
点击绿色按钮
3.3. 创建应用
我们刚刚创建的项目类似于是一所大学,而创建的应用就类似于大学里面的二级学院
eg:
用户模块 user
订单模块 order
收货地址管理 address
...
# 如何创建应用???
1. 命令行创建
python3 manage.py startapp 应用名称
"""
应用名:最好见名知意,但是平时学习就可以随意些:app01,02...
"""
# 一个django项目至少要有一个应用
2. pycharm创建
tools --> run manage.py task.. --> startapp app01
3. 应用创建完成之后,第一件事,去配置文件中注册应用。
"""
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'page.apps.PageConfig',
'app01.apps.App01Config',
# 创建项目时带app的话,pycharm会自动帮你注册。
'app02',
]
"""
4. 主要文件介绍
|- manage.py # 入口文件,启动文件
└─ dome/
|- asgi.py # django3.0以后新增的,用于让django运行在异步编程模式的一个web应用对象
|- settings.py # 整个django项目的全局配置文件
|- urls.py # 路由层,写的是路径与函数的对应关系
|- wsgi.py # wsgiref服务器,wsgi协议,
|- __init__.py
└─ app01 #
|- models # 模型层,和数据库相关的都在这里
|- views # 视图层,主要用来写逻辑的,
|- tests # 测试脚本
|- apps # 忽略,
|- admin.py # django自带的后台管理系统
templates # 写html页面的地方
migrations # 迁移数据库时,会把迁移记录保存到这里
db.sqlite # django自带的小型数据库,实际项目几乎不用