WEB框架与Django简介
WEB框架
什么是WEB框架
python三大主流web框架
Django:大而全,自带了很多功能模块,类似于航空母舰 (缺点:有点笨重)
Flask:短小精悍,自带的功能模块特别少,大部分都是依赖于第三方模块(小而轻)
Tornado:异步非阻塞 主要用在处理高io 多路复用的情况 可以写游戏后端
服务器程序与应用程序
a. socket
b.路由与视图函数
c.模板渲染
Django:
a 用别人的wsgiref
b 自己写的
c 自己写的
Flask:
a 用别人的werkzeug
b 用自己写的
c 用别人的jinjia2
tornado:
a,b,c都是自己写的
Django简介
注意事项:
- 计算机的名称不能有中文
- 一个pycharm窗口就是一个项目,不要多个项目放在一个窗口里面
- 项目名不能起中文
版本问题
推荐使用带LTS的1.11版本
验证是否下载成功
pip3 iinstall django==1.11
django-admin
创建Django项目的方式
方式一(命令行创建)
-
创建django项目
django-admin startproject 项目名 -
创建app应用
python3 manage.py startapp app01 -
启动django项目
python3 manage.py runserver
ps:用命令行创建django默认不会自动创建templates文件夹
需要你手动自己创建(注意改文件夹路径是否被添加到配置文件中)
方式二(pycharm创建)
-
FILE >>> new project 选择第二个django 需要注意名字不能有中文,选择本地的解释器,勾选后台管理
-
创建app
pycharm命令行创建
python3 manage.py startapp app01Tools下面run manage task 功能栏
-
启动点绿色小箭头
强调
- 用django一定要保证只有一个在运行状态 切记切记!!!!!!!
- 一定记得清浏览器的缓存
app(应用)的概念
一个django项目就是一所大学
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' # 也可以简写
]
Django静态文件配置
STATIC_URL = '/static/'
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'),
]
暴露给外界能够访问服务器静态文件夹下面所有资源
STATIC_URL = ‘/XXX/’ # 接口前缀 与静态文件夹的名字一点关系都没有
默认情况下这个前缀跟静态文件夹名字一样!!!!
STATICFILES_DIRS = [
os.path.join(BASE_DIR,'static'), #就是你的静态文件夹路劲
os.path.join(BASE_DIR,'static1'),
os.path.join(BASE_DIR,'static2'),
] # 多个应用可以有自己的static文件夹
ps:会依次查找列表中所有的静态文件路径,找到的话立刻停止,都没有找到返回404
django各个文件的作用
应用名
migrations 数据库迁移记录相关数据
admin.py django后台管理相关
models.py 模型表相关
views.py 视图函数相关
项目名
settings.py 配置文件
urls.py 路由与视图函数的映射关系
templates
项目用到的所有html文件
mangage.py
django入口文件
Django基础必备三件套
from django.shortcuts import HttpResponse,render,redirect
HttpResponse
内部传入一个字符串参数,返回给浏览器
def index(request):
#业务逻辑代码
return HttpResponse("OK")
render
除request参数外还接受一个待渲染的模板文件和一个保存具体数据的字典参数。
将数据填充进模板文件,最后把结果返回给浏览器。
def index(request):
#业务逻辑代码
return render(request,"index.html",{"name": "alex",})
redirect(重定向)
接收一个URL参数,表示跳转到指定的URL
def index(request):
#业务逻辑代码
return redirect("/home/")
redirect与render的区别在于:redirect走的是路径,而render返回的是模板

浙公网安备 33010602011771号