1. web应用是什么?
通过浏览器访问的应用程序都是
2. 软件开发架构
B/S:浏览器, 服务端
C/S:客户端,服务端
3. web应用的优点:
3.1 只需要一个浏览器
3.2 节省更多的资源
3.3 客户端不需要主动更新,服务端更新即可
4. Web应用程序的缺点
4.1 客户端严格依赖于服务端,服务端一旦宕机,客户端立马宕机
4.2 会出现浏览器的兼容性问题。
5. web框架:
'''
框架:就是在固定的位置写固定的代码
'''
python中的三大主流框架:
1. Django:# 大而全,类似于航空母舰
2. flask:# 小而精,严重依赖于第三方模块,轻量级的
3. tornado:# 异步高性能框架,擅长解决高并发问题
'''我们现在学习Django,框架没必须全部都学,只需要学习一到二个,到企业中,随着公司的使用去学习。'''
MVC和MTV模型
1.1 MVC
M:model(模型层), 跟数据库打交道的
V:view(视图层), html页面
C:controller(控制器层), 处理逻辑,调用页面和数据
1.2 MTV
M 代表模型(Model): 负责业务对象和数据库的关系映射(ORM)。
T 代表模板 (Template):负责如何把页面展示给用户(html)。
V 代表视图(View): 负责业务逻辑,并在适当时候调用Model和Template。
Django下载与安装
1. 版本问题
django1.x: 老项目在使用,
django2.x:新项目在使用, 2020年
django3.x:最新版本, 2021年
'''IT行业,生产环境尽量不要选择最新版本'''
# 我们学习使用django1.x, 与django2.x区别
2. 安装django
pip3 install django==1.1.1
3. 如何验证django是否安装成功?
# 在cmd中输入django-admin,如果有内容输出,就代表安装成功
创建django项目
'''在创建项目之前,可以先切换路径到你想保存项目的位置'''
1. 命令行创建项目:
django-admin startproject 项目名称
2. pycharm创建
见截图
3. 命令行创建项目和pycharm创建的区别:
3.1 pycharm创建
# 会自定生成一个templates文件夹
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
},
]
3.2 cmd创建:
# 没有templates文件夹
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')],
'APP_DIRS': True,
}
启动项目
'''前提:在cmd中,先切换到manage.py文件所在的路径下'''
1. 命令行启动
python3 manage.py runserver
python3 manage.py runserver 127.0.0.1:8000 # 在本地启动的时候默认
python3 manage.py runserver 8001 # 修改端口号
'''django框架的默认端口号:8000'''
2. pycharm启动django项目
点击pycharm的右上角绿色启动按钮即可
创建应用
# 应用:application app
'''
我们刚刚创建的项目就类似于是一所大学,而创建的应用就类似于是大学里面的二级学院
'''
eg:
订单模块
用户模块
收货地址
...
# 一个项目,至少要有一个应用
如何创建应用?
1. 命令行创建:
python3 manage.py startapp 应用名
'''
应用名:符合正常的命名规范就行, 见名知意,但是,我们教学使用app01, app02, app03...
'''
2. pycharm 创建应用
# 见截图
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 # 迁移数据库的时候,会把迁移记录存在这个文件夹里面
__init__.py # 包
admin.py # django自带的后台管理系统
apps.py # 暂且忽略
models.py # M:model层,跟数据库打交道的
tests.py # 测试脚本文件
views.py # V:view(逻辑层)
mysite1
__init__.py
settings.py # 整个django项目的配置文件
urls.py # 路由文件,记录后缀与视图函数的对应关系
wsgi.py # wsgiref服务器,在本地项目使用wsgiref, 后续上线的时候,我们会换成 uwsgi服务器,uwsgi承载的并发量更高,而wsgiref承载的并发量小,WSGI协议
templates # 写html页面的地方
db.sqlite3 # django框架自带的小型数据库,mysql
manage.py # 整个django项目的入口文件
django三板斧
1. HttpResponse()
2. render()
3. redirect
# return HttpResponse('index') # 暂且记住返回值是字符串
# return render(request, 'index.html') # 渲染html页面的
# return redirect('http://www.mzitu.com') # 重定向的
return redirect('/home/') # 重定向的