一、web应用概念
-
我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端。 这样我们就可以自己实现Web框架了
http的默认端口号:80
https的默认端口号:443
1.web应用是什么?
通过浏览器访问的应用都是的
2.软件开发模式:
服务端需要具备的特征:24小时对外提供服务
C/S: client:客户端,server:服务端
B/S: browser:浏览器, server:服务端
# 本质上B/S架构也是C/S架构
3.Web应用程序的优点
1、只需要一个浏览器
2、节省资源
3、客户端不需要主动更新,服务端更新即可
4.Web应用程序的优点
1、一但服务端出现问题,客户端立马受影响
2、兼容性问题
"""
Web框架:就是在固定的位置书写固定的代码
"""
python中的三大主流框架:
1.Django框架:
特点:大而全,自带的功能组件非常非常多,类似于航空母舰
不足之处:有时候过于笨重
2.flask框架:
特点:小而精,自身的功能组件非常少,类似于游骑兵
但是第三方模块非常之多,如果把第三方模块全部叠加起来
完全可以盖过django并且也越来越像django
不足之处:比较依赖于第三方的开发者,有时候也会受限于第三方模块
ps:三行代码就可以启动一个flask后端服务
3.tornado框架:
特点:异步非租塞,支持高并发
速度非常的快,快到可以开发游戏服务器
ps:sanic、fastapl...
A : socket部分 | B: 路由与视图匹配 | C: 模版语法 | |
---|---|---|---|
django | 别人的, wsgiref模块 | 自己写的 | 自己的(没有jinja2模块好用 但是也很方便) |
flask | 别人的,wsgiref模块封装之后werkzeug | 自己写的 | 别人的,jinja2模块 |
tornado | 自己写的 | 自己写的 | 自己写的 |
MVC和MTV模式
1. MVC:
M: model(跟数据打交道的)
V: View(视图, 页面)
C: controller(控制器,主要写逻辑的)
S:service (服务层)
2. MTV:
M: model(模型层:跟数据相关的)
T:template(模板:html页面)
V:view(主要写逻辑的)
二、Django下载与安装,与注意事项
1. 在pycharm窗口只能有一个django在运行状态,如果多开永远只有第一个在运行,且一个pycharm窗口就是一个项目,不要在窗口下面的子文件夹创建项目、不要和其他项目并列。
2. 浏览器一定要设置为不保存缓存的,因为保存缓存可能会导致这次调试的前端效果仍旧是上次改动前的效果,浏览器还没读修改后的内容,用的是缓存数据
清除浏览器缓存
1.在浏览器页面右键点击检查
2.点击设置齿轮图标 Settings
3.找到 Network
4.Disble cache(while DevTools is open) 勾选上
3.Django版本问题
![5457594f97247d7a3d6f107bb115219](C:\Users\gengjian\AppData\Local\Temp\WeChat Files\5457594f97247d7a3d6f107bb115219.png)
-
1.X版本,2.X版本,3.X版本,推荐使用1.X版本中的1.11.11版本,原因后面文章中会介绍,感兴趣可找度娘
MVC和MTV模式
1. MVC:
M: model(跟数据打交道的)
V: View(视图, 页面)
C: controller(控制器,主要写逻辑的)
S:service (服务层)
2. MTV:
M: model(模型层:跟数据相关的)
T:template(模板:html页面)
V:view(主要写逻辑的)
django命令行或者pycharm下载
# 安装django
pip3 install django (最新版本)
pip3 install django==1.1.29
如何验证django是否安装成功?
# 在cmd中, 输入django-admin,如果有输出信息,就代表安装成功
创建Django项目
-
django是一款专注于开发app(应用)的软件
我们创建一个django项目之后类似于创建了一所大学 而app就类似于大学里面的各个学院,每个学院都可以有自己独立的各项功能职责 django相当于是一个空壳子用来给各个学院提供资源!!!
强调:我们手动创建的app一定要去settings文件中注册才能生效
'''你可以提前切换到项目要保存的位置'''
1. 命令行创建
django-admin startproject 项目名
2. pycharm创建
看截图
3. 命令行创建和pycharm创建的区别:
1. pycharm创建:
自动生成templates文件夹
settings.py文件:
'''
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
}
'''
2. 命令行创建:
没有templates文件夹
settings.py文件:
'''
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
}
]
'''
启动Django项目
'''前提:先切换到manage.py所在的文件夹下面'''
1. 命令行启动
python3 manage.py runserver
python3 manage.py runserver 127.0.0.1:8080
python3 manage.py runserver 8080
'''django的默认端口号:8000'''
2. pycharm启动
点击pycharm绿色按钮
创建应用
# 应用:application app
我们刚刚创建的项目就类似于是一所大学,而创建的应用就类似于大学里面的二级学院
eg:
用户模块 user
订单模块 order
收货地址管理 :address
...
如何创建应用?
1. 命令行创建
# python manage.py startapp 应用名
'''
应用名:最好见名知意,我们学习使用,就命名为:app01, app02...
'''
# 一个django项目至少要有一个应用
2. pycharm创建
Tools => run manage.py task
3. 应用创建完成之后,第一件事去配置文件中注册应用
###################################################
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01',
'app02'
]
###################################################
主要文件介绍
mysite1 # 项目名
app01 # 应用名(可以有多个)
migrations # 迁移数据库的时候,会把迁移记录保存到这里来
admin.py # django自带的后台管理系统
apps.py # 注册app
models.py # (模型层)以后跟数据库相关的都在这个里面
tests.py # 测试脚本
views.py # view层,主要用来写逻辑的,视图函数(视图层)
mysite1 # 项目同名文件夹
__init__.py
settings.py # 整个django项目的全局配置文件
urls.py # 路由层,写的是路径与函数的对应关系
wsgi.py # wsgiref服务器, WSGI协议,uwsgi服务器
templates # 写html页面的地方 (模板文件,模板层)
db.sqlite3 # django自带的小型数据库, mysql,oracle
manage.py # Django启动文件,入口文件