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框架:
小而精,依赖于第三方模块
3. tornado框架:
异步高性能框架
MVC和MTV模式
1. MVC:
M: model(跟数据打交道的)
V: View(视图, 页面)
C: controller(控制器,主要写逻辑的)
S:service (服务层)
比如controller里有PC端、安卓端、IOS端的登录功能,
可以将三个不同的登陆函数合并为一个,写到service层里
controller层里要用直接从service层里调就行,可以通过参数来标识不同端。
2. MTV:
M: model(模型层:跟数据相关的)
T:template(模板:html页面)
V:view(主要写逻辑的)
django下载与安装
1. django的版本问题:
django1.x: 老项目再用
django2.x:新项目再用
django3.x:刚出来的
# 我们学习使用django1.x
# 安装django
pip3 install django (最新版本)
pip3 install django==1.1.29
如何验证django是否安装成功?
# 在cmd中, 输入django-admin,如果有输出信息,就代表安装成功
创建django项目
'''你可以提前切换到项目要保存的位置'''
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 # 迁移数据库的时候,会把迁移记录保存到这里来
__init__.py
admin.py # django自带的后台管理系统
apps.py # 忽略
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 # 启动文件,入口文件
小白必会三板斧
1.HttpResponse
返回字符串
2.render
返回html页面,还可以使用模板语法
3.redirect
重定向
def index(request):
print('123')
# 暂且记忆返回值是字符串类型
# return HttpResponse('hello django!') # 返回给浏览器了
ctime = time.strftime('%Y-%m-%d %X')
a = 1
b = 2
print(locals())
# return render(request, 'index.html', {'ctime11111':ctime, 'a':1, 'b':2})
# return render(request, 'index.html', locals())
# return redirect('http://www.baidu.com')
return redirect('/admin/') # ip+port/admin