python主流web框架
django
大而全 自带的功能非常的多 但是有时候会略显笨重
类似于'航空母舰'
flask
小而精 自带的功能非常的少 但是第三方模块非常的多
类似于'游骑兵'
# flask的第三方模块加到一起甚至比django还多 并且也越来越像django
# flask由于过多的依赖于第三方模块 有时候也会受制于第三方模块
tornado
异步非阻塞框架 速度极快 甚至可以用于充当游戏服务器
# 还有一些占比较小 但是也很厉害的框架
fastapi、sanic......(后面自己加油吧........)
"""
框架的核心逻辑几乎是一致的 在学习的时候只需要先学会一种
之后就可以触类旁通 但是需要强调的是:千万不用同时学习!!!
"""
A:socket部分
B:路由与视图函数对应关系(路由匹配)
C:模版语法
django
A用的是别人的 wsgiref模块
B用的是自己的
C用的是自己的(没有jinja2好用 但是也很方便)
flask
A用的是别人的 werkzeug(内部还是wsgiref模块)
B自己写的
C用的别人的(jinja2)
tornado
A,B,C都是自己写的
django框架版本
django3.X:自带异步功能
django2.X:默认不支持异步
django1.X:默认不支持异步
'''
学习基于django1.X版本即可
原因:
老项目中使用频率最高、最广泛的版本!!!
与2.X功能几乎一致,后续会讲解两者区别之处
与3.X最主要的区别在于新增了一个异步的功能
'''
框架下载
pip3 install django==1.11.11
'''如果之前下载了其他版本不用管 自动替换!!!'''
注意事项
- 计算机名称不要出现中文
- python解释器版本不同可能会出现启动报错
- 项目中所有的文件名称不要出现中文
- 多个项目文件尽量不要嵌套,做到一项一夹
启动如果报错,根据提示找到修改widgets.py文件第152行源码,删除最后的逗号即可
基本使用
1.验证是否下载成功
cmd窗口直接输入django-admin有一长串结果展示表明成功(需提前配置解释器环境变量)
2.常见操作命令
# 1.创建django项目
django-admin startproject 项目名(如:mysite)
# 2.启动django项目
cd 项目名(如:mysite)
python3 manage.py runserver IP:PORT
'''IP:PORT可以不写 默认在本地8000端口起服务'''
# 3.创建app应用
python3 manage.py startapp 应用名(jason01) (我因为有3.6和3.9,所以我用python36|python39 manage.py ..........)
3.应用的概念
"""
django是一款专门用来开发app的web框架
django框架就类似于是一所大学(空壳子)
app就类似于大学里面各个学院(具体功能的app)
比如开发淘宝
订单相关
用户相关
投诉相关
创建不同的app对应不同的功能
选课系统
学生功能
老师功能
一个app就是一个独立的功能模块
"""
***********************创建的应用一定要去配置文件中注册**********************
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01.apps.App01Config', # 全写
'app01', # 简写
]
# 创建出来的的应用第一步先去配置文件中注册 其他的先不要给我干
ps:你在用pycharm创建项目的时候 pycharm可以帮你创建一个app并且自动注册
***********************************************************************
主要文件
-mysite文件夹名称
--mysite同名文件夹
----settings.py 项目配置文件
----urls.py 总路由层
--manage.py 项目入口文件
--db.sqlite3 运行项目后自动创建(django自带的小型数据库)
--应用文件夹 通过命令创建(可以创建任意个数)
----migrations文件夹 存储数据迁移记录
----admin.py django提供的后台管理
----apps.py 用于配置文件的应用注册(创建的应用都需要去配置文件中注册)
----models.py 模型层(与数据库相关)
----views.py 视图层(编写当前应用核心业务逻辑代码)
----tests.py 自带的测试文件
命令行与pycharm创建的区别
# 1 命令行创建不会自动有templatew文件夹 需要你自己手动创建而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
# pycharm创建
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
]
# 命令行创建
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
]
"""
也就意味着你在用命令创建django项目的时候不单单需要创建templates文件夹还需要去配置文件中配置路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]
"""
django小白必会三板斧
from django.shortcuts import Httpresponse,render,redirect (三者但是HttpResponse对象)
"""
HttpResponse
返回字符串类型的数据
render
返回html文件的
redirect
重定向
return redirect('https://www.mzitu.com/')
return redirect('/home/')
"""