目录
前言
今日内容
python 三大主流 web 框架(了解知识)
django 框架介绍
前言
软件开发结构 c/s
http 协议的由来 sql 语句的由来 统一接口统一规范
HTTP 协议
1. 四大特性
1. 基于 TCP/IP 作用于应用层之上的协议
2. 基于请求响应
3. 无状态
cookie session token...
4. 无连接
websocket 长连接
2. 数据格式
请求格式
请求首行
请求头
请求体
3. 响应状态码
用数字表示一串语言解释
?
?
?
?
?
今日内容
? 纯手撸简易 Web 框架
?
基于第三方模块帮你撸
views.py 里面的放的是函数 我们管这些函数叫视图函数 视图层
urls.py 里面放的是 路由 (后缀) 与视图函数的对应关系 路由层
templates 文件夹 里面放的全是 html 文件 模板层
动静态网页
静态网页
数据是写死的 万年不变(哪怕改变了 也是人为直接修改)
动态网页
数据是实时获取的
eg:
1 后端代码动态获取 当前时间
2 数据是从数据库查询出来的
题目 1
访问页面 页面上展示当前访问的时间
题目 2
访问页面 页面上展示后端用户字典 并且在前端页面上可以
利用一些简便的方式操作字典取值
jinja2 模板语法
专门用来处理后端数据与 HTML 页面的交互
模板语法(极其贴近 python 后端语法)
让你能够在 HTML 页面上 也能够用后端 python 语法来操作后端传递过来的数据
- <p>{{ userDic }}</p>
- <p>{{ userDic.username }}</p>
- <p>{{ userDic['age'] }}</p>
- <p>{{ userDic.get('hobby') }}</p>
- <p>{{ userDic.get('hobby').0 }}</p>
- <p>{{ userDic.get('hobby').1 }}</p>
- <p>{{ userDic.get('hobby').2 }}</p>
- {% for user_dic in user_list %}
- <tr>
- <td>{{ user_dic.id }}</td>
- <td>{{ user_dic.username }}</td>
- <td>{{ user_dic.password }}</td>
- </tr>
- {% endfor %}
- ?
模板的渲染 将后端传递给 HTML 文件的数据 在后端处理好 生成一个完整的 HTML 文件的过程
注意 模板的渲染是在后端完成的 跟前端没有关系
?
python 三大主流 Web 框架(了解知识)
结合前端 自己写的后端框架 数据库(前端动态展示数据库数据)
django 大而全 自带的组件和功能非常非常多 类似于航空母舰
不足之处: 写小项目的时候 可能会比较笨重(大材小用)
flask 小而精 短小精悍 自带的组件和功能特别特别少 类似于游骑兵
基本全部依赖于第三方组件
不足之处: 受限于第三方模块的影响比较大
如果将 flask 所有第三方模块加起来 能够直接盖过 django
tornado 异步非阻塞 这个框架甚至可以用来开发游戏服务器
?
a:socket 部分
b: 路由匹配
c: 模板语法
django:
a 用的别人的 wsgiref(django 默认的)
b 自己写的
c 自己写的
flask:
a 用的别人的 werkzeug
b 自己写的
c 用的别人的 jinja2
Tornado:
a,b,c 都是自己写的
django 框架介绍
# 注意事项
1. 计算机名称不能有中文
2.python 解释器不要使用 3.7 版本 推荐使用版本 3.4~3.6
3. 一个 pycharm 窗口 只能跑一个项目
django 版本问题
django 版本以 1.11.11 为主(1.11.9~1.11.13)
如何检验 django 是否安装成功
命令行敲 django-admin
- ?
- # 命令行创建项目
1. 创建 django 项目
django-admin startproject 项目名(例如 mysite)
2. 启动 django 项目
切换到项目文件夹下
- python3 manage.py runserver
- python3 manage.py runserver 127.0.0.1:8080
3. 创建应用(django 支持多 App 开发)
python3 manage.py startapp app01
注意
1. 不会自动帮你创建 templates 文件夹
2. 配置文件中不会自动帮你书写 templates 文件路径
# App 的概念
django 是一个以开发 App 为主要功能的 Web 框架
App 就是 application 应用的意思
一个 django 项目就是一所大学(空的架子 本身没有任何功能)
而 App 就类似于大学里面的各个学院
一个空的 django 本身没有任何作用 仅仅是为 App 提高前期的环境配置
你可以根据功能的不同 开发多个 App
一个 App 对应一个具体的功能模块
用户相关的功能 用户相关的 App
订单相关的功能 订单相关的 App
商品相关的功能 商品相关的 App
每一个 App 都有自己独立的功能
****************************** 注意 ***************************
创建好的 App 需要在 django 配置文件中注册方可生效
- INSTALLED_APPS = [
- 'django.contrib.admin',
- 'django.contrib.auth',
- 'django.contrib.contenttypes',
- 'django.contrib.sessions',
- 'django.contrib.messages',
- 'django.contrib.staticfiles',
- # 'app01' # 简便写法
- 'app01.apps.App01Config' # 最完整的写法
- ]
- # pycharm 创建项目
1. 创建应用的时候 可以使用简便方式
Tools>>> run manage.py task
2. 一定要确保同一个端口 同一时间只能启一个 django 项目
?
3. 配置文件中针对 templates 文件夹的路径 如果是空的需要你手动配置
- TEMPLATES = [
- {
- 'BACKEND': 'django.template.backends.django.DjangoTemplates',
- 'DIRS': [os.path.join(BASE_DIR, 'templates')]
- ,
- 'APP_DIRS': True,
- 'OPTIONS': {
- 'context_processors': [
- 'django.template.context_processors.debug',
- 'django.template.context_processors.request',
- 'django.contrib.auth.context_processors.auth',
- 'django.contrib.messages.context_processors.messages',
- ],
- },
- },
- ]
- ?
- ?
- ?
- # django 文件功能
django 项目名
项目同名的文件夹
settings.py 暴露给用户可以配置的配置文件
urls.py 路由与视图函数对应关系
manage.py django 的入口文件
应用名文件夹
migrations 文件夹 所有数据库相关的操作记录
admin.py django admin 后台管理
apps.py 注册 App 使用
models.py 放所有数据库相关的模型类
tests.py 测试文件
views.py 处理业务逻辑的视图函数
# django 小白必会三板斧
HttpResponse 返回字符串
?
render 返回 HTML 文件
可以给 HTML 页面传值
- def login(request):
- user_dic = {'username':'jason','password':'123'}
- return render(request,'login.html',{'xxx':user_dic})
- ?
redirect 重定向
1. 直接写你本网站的路径后缀
2. 也可以全路径
- def home(request):
- # return redirect('/login') # 重定向
- return redirect('https://www.baidu.com') # 重定向
注意
django 默认是自动重启的
重启机制
内有检测机制 实时检测所有文件的变化
有时候会产生 你代码还没写完 就自动重启报错的情况 不用管
每次写完代码之后 自己手动重启
?
?
?
?
来源: http://www.bubuko.com/infodetail-3298293.html