Django-Part1
Django-Part1——基础操作
[TOC]
后端
后端很重要,每个领域的知识都应该学,要做一个全能型人才
软件开发架构
- cs架构(Client/Server) 建立在局域网的基础上
- bs架构(Browser/Server) 建立在广域网的基础上
bs本质也是cs
HTTP协议
网络协议
- HTTP协议 数据传输是明文
- HTTPS协议 数据传输是密文
- websocket协议 数据传输是密文
四大特性
- 基于请求响应
- 基于TCP、IP作用于应用层之上的协议
- 无状态
- 短/无链接
数据格式
- 请求首行
- 请求头
- 请求体
响应状态码
- 1xx:指示信息–表示请求已接收,继续处理。
- 2xx:成功–表示请求已被成功接收、理解、接受。
- 3xx:重定向–要完成请求必须进行更进一步的操作。
- 4xx:客户端错误–请求有语法错误或请求无法实现。
- 5xx:服务器端错误–服务器未能实现合法的请求。
wsgiref模块
文件
- urls.py 路由与视图函数对应关系
- views.py 视图函数(后端业务逻辑)
- templates文件夹 专门用来存储html文件
按照功能的不同拆分之后,后续添加功能只需要在urls.py
注册对应关系然后在views.py
书写业务逻辑即可
流程
- 请求来的时候解析http格式的数据,封装成大字典
- 响应走的时候给数据打包成符合http格式,再返回给浏览器
动静态网页
静态网页
- 页面上的数据是直接写死的,万年不变
动态网页
- 页面框架不变,而数据是实时获取的
1 | # 动态网页制作 |
模版语法之Jinja2模块
模版语法仅在后端服务器上起作用
1 | # 模版语法(非常贴近python语法) |
Python三大主流web框架
django
- 特点:大而全,自带的功能特别多
- 不足之处:有时候过于笨重
- 组成:
- socket部分用的是别人的:wsgiref模块
- 路由匹配用的是自己的
- 模版语法用的是自己的(没有jinja2好用 但是也很方便)
flask
- 特点:小而精,自带的功能特别少。但第三方的模块特别多,如果将flask第三方的模块加起来完全可以盖过django,并且也越来越像django
- 不足之处:比较依赖于第三方的开发者,可能不兼容
- 组成:
- socket部分用的是别人的:werkzeug(内部还是wsgiref模块)
- 路由匹配用的是自己的
- 模版语法用的是别人的:jinja2
tornado
- 特点:异步非阻塞,支持高并发,甚至可以开发游戏服务器
- 组成:
- socket部分用的是自己的
- 路由匹配用的是自己的
- 模版语法用的是自己的
开始Django
如何让你的计算机能够正常的启动django项目
- 计算机的名称不能是中文
- 一个pycharm窗口只开一个django项目
- 项目里面所有的文件也尽量不要出现中文
- python解释器尽量使用3.4~3.6之间的版本(如果依然报错,点击最后一个报错信息,在源码中把逗号删掉)
django安装
- 如果已经安装了其他版本,可以
pip install django==xx.xx.xx
自动卸载安装新的版本 - 在mac终端可以输入django-admin验证安装成功
基本操作
命令行操作
切换到指定目录,创建django项目
django-admin startproject mysite
启动django项目
cd /mysite
python3 manage.py runserver
创建应用
python manage.py startapp app01
使用命令行创建项目时一定要记得配置templates路径,建议使用pycharm创建
pycharm操作
new project -> django
启动django项目
命令行 或者 绿色箭头运行
创建应用
命令行 或者 tools -> run manage.py task -> start app02(有提示,前期不要用,背完整命令)
修改端口号以及创建server
edit -> config
命令行与pycharm创建的区别
1 | # 1 命令行创建django项目时,不仅要创建templates文件夹,还需要自己在setting.py中配置路径。 |
更快捷的Django命令
- 这里的命令将拥有代码提示
应用
django是一款专门用来开发app的web框架。
而这里的app指的是一种具体的功能模块。
1 | INSTALLED_APPS = [ |
创建出来的的应用第一步一定要先去settings.py中注册
工程文件介绍
1 | -mysite项目文件夹 |
静态文件配置
Templates
- 将html文件默认都放在 Templates文件夹下
Static
- 将网站所使用的静态文件放在Static文件夹下
这里的静态文件指前端已经写好了的,能够直接调用的文件。包括 js、css、.jpg、第三方前端框架等。
Django不会自动创建static文件夹,需要手动创建
访问静态文件
如果访问不到资源,则一定说明后端没有开设该资源的接口。
在写django项目的时候,可能会出现后端代码修改了,但是前端页面没有变化的情况。那么可能原因有:
在同一个端口开了好几个django项目,而一直在跑的其实是第一个django项目
浏览器缓存的问题。勾选 settings -> network -> disable cache
静态文件访问令牌
想要调用静态文件,则文件地址必须以 令牌(STATIC_URL
) + 文件名 形式。
然后将在 STATICFILES_DIRS
注册的文件夹列表中从上往下依次非递归查找。
1 | # -> settings.py |
同时也可以动态解析令牌
1 | # 静态文件动态解析 |
在前期使用django提交post请求时,需要在settings中注释掉一行代码
1 | # -> settings.py |
数据库链接
Pycharm链接数据库
- 需要提前创建好对应使用的mysql数据库文件
- pycharm右侧上方database
Django链接数据库
- Django默认使用sqlite3,首先改settings
- Django默认使用mysqldb,需要改为pymysql
1 | # -> settings.py |