Django三大主流Web框架(django版本安装-项目创建-应用创建-django三板斧)
一:python三大主流web框架
1.python三大主流Web框架
django
特点:大而全 自带的功能特别特别特别的多 类似于航空母舰
不足之处:
有时候过于笨重
flask
特点:小而精 自带的功能特别特别特别的少 类似于游骑兵
第三方的模块特别特别特别的多,如果将flask第三方的模块加起来完全可 以盖过 django 并且也越来越像django
不足之处:
比较依赖于第三方的开发者,有时候也会受限于第三方模块
tornado
特点:异步非阻塞 支持高并发
速度非常快 快到甚至可以开发游戏服务器
不足之处:
暂时你不会

2:三大主流web框架特点
A:socket部分
B:路由与视图函数对应关系(路由匹配)
C:模版语法
django:
A用的是别人的 wsgiref模块
B用的是自己的
C用的是自己的(没有jinja2好用 但是也很方便)
flask:
A用的是别人的 werkzeug(内部还是wsgiref模块)
B自己写的
C用的别人的(jinja2)
tornado:
A,B,C都是自己写的
| A : socket部分 | B: 路由与视图匹配 | C: 模版语法 | |
|---|---|---|---|
| django | 别人的, wsgiref模块 | 自己写的 | 自己的(没有jinja2模块好用 但是也很方便) |
| flask | 别人的,wsgiref模块封装之后werkzeug | 自己写的 | 别人的,jinja2模块 |
| tornado | 自己写的 | 自己写的 | 自己写的 |
二:正常运行Django项目所需要知道的注意事项
1.计算机的名称不能有中文,不然bug在哪你都不知道!
解: 右键计算机 点击属性

2.一个pycharm窗口只开一个django项目
在pycharm窗口只能有一个django在运行状态,如果多开永远只有第一个在运行,且一个pycharm窗口就是一个项目,不要在窗口下面的子文件夹创建项目,不要和其他项目并列。
3.项目里面所有的文件也尽量不要出现中文
使用中文名极容易出现莫名其妙的报错,使用拼音也会显得非常不专业
4.python解释器尽量使用3.4~3.6之间的版本
5.浏览器一定要设置为不保存缓存
浏览器一定要设置为不保存缓存的,因为保存缓存可能会导致这次调试的前端效果仍旧是上次改动前的效果,浏览器还没读修改后的内容,用的是缓存数

清除浏览器缓存
1.在浏览器页面右键点击检查
2.点击设置齿轮图标 Settings
3.找到 Network
4.Disble cache(while DevTools is open) 勾选上
6.总结:以上方式还是报错解决方法
以上都符合,报错以下解决方式:
(如果你的项目报错 你点击最后一个报错信息
去源码中把逗号删掉)
三:Django的版本
1.Django版本问题
1. django的版本问题:
django1.x: 老项目再用
django2.x:新项目再用
django3.x:刚出来的
(3.X版本直接忽略 还在开发中)
1.X和2.X本身差距也不大 我们讲解主要以1.X为例 会讲解2.X区别
面试讲解:
公司之前用的1.8 满满过渡到了1.11版本 有一些项目用的2.0

三:django安装
1.命令行安装
pip3 install django (最新版本)
pip3 install django==1.11.11
2.pycharm下载django模块
如果已经安装了其他版本 无需自己卸载
直接重新装 会自动卸载安装新的
如果报错 看看是不是timeout 如果是 那么只是网速波动
重新安装即可

3.验证是否安装成功的方式1
终端输入django-admin看看有没有反应

四:命令行创建django项目
- 命令行创建(linux必备)
1.创建django项目前
你可以先切换到对应的D盘,然后再创建,不然会默认创建到C盘
D:
2.命令行创建项目
django-admin startproject 项目名
django-admin startproject mysite

mysite文件夹
manage.py
mysite文件夹
__init__.py
settings.py
urls.py
wsgi.py

3.启动django项目
一定要先切换到项目目录下
cd /mysite
python3 manage.py runserver
python3 manage.py runserver 127.0.0.1:8080 # 可以指定端口 本地回环地址
python3 manage.py runserver 8080
# http://127.0.0.1:8000/

五:django创建应用
1.app的概念
django是一款专注于开发app(应用)的web框架
我们创建一个django项目之后类似于创建了一所大学 而app就类似于大学里面的各个学院,每个学院都可以有自己独立的各项功能职责ajango相当于是一个空壳子用来给各个学院提供资源!!
1.比如开发淘宝
用户模块 user
订单模块 order
收货地址管理 :address
2.创建不同的app对应不同的功能
选课系统
学生功能
老师功能
ps: 一个app就是一个独立的功能模块
2.命令行创建应用
# cmd创建应用
Next, start your first app by running python manage.py startapp [app_label].
cd 项目名 : 切换到项目路径创建应用
1.命令行创建应用
python3 manage.py startapp 应用名
python3 manage.py startapp app01

注意:
应用名应该做到见名知意
user
order
web
...
但是我们演示统一就用app01/02/03/04

3.pycharm快捷方式创建项目
# pycharm快捷方式创建项目
1 new project 选择左侧第二个django即可

# 2 启动
1.还是用命令行启动
2.点击绿色小箭头即可

# 3 创建应用
1.pycharm提供的终端直接输入完整命令
python3 manage.py startapp app01
2.pycharm 提供的快捷方法
2.1 tools
2.2 run manage.py task提示(前期不要建议用)
输入:
startapp app01
# 4 修改端口号以及django server
edit confi....

4.:创建的应用一定要去配置文件中注册
# 我们手动创建的app一定要去settings文件中注册才能生效
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并且自动注册

5.命令行与pycharm创建的区别
1 命令行创建不会自动有templatew文件夹 需要你自己手动创建
而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
# pycharm创建
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [os.path.join(BASE_DIR, 'templates')]
]
命令行创建不会自动有templatew文件夹 需要你自己手动创建 还需要去配置文件中配置路径 os.path.join(BASE_DIR, 'templates')
而pycharm会自动帮你创建并且还会自动在配置文件中配置对应的路径
# 命令行创建
TEMPLATES = [
{
'BACKEND': 'django.template.backends.django.DjangoTemplates',
'DIRS': [],
]
总结:
也就意味着你在用命令创建django项目的时候不单单需要创建templates文件夹还需要去配置文件中配置路径
'DIRS': [os.path.join(BASE_DIR, 'templates')]

六:主要文件介绍
mysite 项目文件夹
mysite 文件夹
__init__.py
settings.py 整个django项目的全局配置文件
urls.py (路由层)路由与视图函数对应关系
wsgi.py WSGI协议,wsgiref服务器 uwsgi服务器
app01 应用名
__init__.py
admin.py django自带的后台管理系统
apps.py 注册使用
migrations文件夹 数据库迁移记录(日志)
models.py 模型层,以后跟数据库相关的都在这个里面(orm)
tests.py 测试文件
urls.py (路由层)路由与视图层函数对应关系
views.py 视图函数(视图层)主要用来写逻辑的
templates 写html页面的地方
manage.py django的入口文件
db.sqlite3 django自带的sqlite3数据库(小型数据库 功能不是很多还有bug)
七:django小白必会三板斧
1.django三板斧介绍
HttpResponse
返回字符串类型的数据
render
返回html文件的 还可以使用模板语法
redirect
重定向
2.HttpResponse
HttpResponse
返回字符串类型的数据
# 导入三板斧
from django.shortcuts import render,HttpResponse,redirect
# Create your views here.
def index(request):
"""
:param request: # 请求相关的所以数据 是一个对象 可以点 比之前的env更 牛逼
:return:
"""
return HttpResponse('你好我是django妹子')

3.render
render
返回html文件的 还可以使用模板语法
from django.shortcuts import render,HttpResponse,redirect
# Create your views here.
def index(request):
"""
:param request: # 请求相关的所以数据 是一个对象 可以点 比之前的env更牛逼
:return:
"""
return render(request, 'firet.html') # 自动去tempaltes文件夹下帮你查找文件

4.redirect
redirect
重定向
return redirect('https://mmzztt.com/') # 跳转别人网址
return redirect('/home/') # 重定向 跳转自己的网址 不加ip与端口
from django.shortcuts import render,HttpResponse,redirect
# Create your views here.
def index(request):
"""
:param request: # 请求相关的所以数据 是一个对象 可以点 比之前的env更 牛逼
:return:
"""
return redirect('https://mmzztt.com/') # 跳转别人网址
return redirect('/home/') # 重定向 跳转自己的网址 不加ip与端口
def home(request):
return HttpResponse('第一次home')

def ab_render(request):
# 视图函数必须要接受一个形参request
user_dict = {'username':'jason','age':18}
# 第一种传值方式 更加精确 节省资源
return render(request,'ab_render.html',{'data':user_dict,'date':123})
# 第二种传值方式 当你要传的数据特别多的时候
"""locals会讲所在的名称空间中所以的名字全部传递给html页面"""
return render(request,'ab_render.html',locals())
Django三大主流Web框架(django版本安装-项目创建-应用创建-django三板斧)的更多相关文章
- Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)
摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...
- python三大主流web框架之Django安装、项目搭建
这一篇我们将迎来python强大的web框架Django,相信大家都已经不陌生,本篇将介绍Django的安装及基础项目搭建,大神略过~ Django是需要我们手动pip安装的,首先我们来安装Djang ...
- 详说Flask、Django、Pyramid三大主流 Web 框架
前言 目前随着 Python 在大数据.云计算.人工智能方面的热度,Python Web 应该也会被更多企业了解使用. Python Web 框架千万种,没必要都去了解和学习,身边总有人说高手都用 F ...
- Flask(1)- 主流web框架、初识flask
一.Python 现阶段三大主流Web框架 Django.Tornado.Flask 对比 Django 主要特点是大而全,集成了很多组件(例如Models.Admin.Form等等), 不管你用得到 ...
- 6 大主流 Web 框架优缺点对比:15篇前端热文回看
摘自:http://blog.csdn.net/VhWfR2u02Q/article/details/78993079 注:以下文章,点击标题即可阅读 <6 大主流 Web 框架优缺点对比> ...
- Django基础一Web框架的本质
我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求, ...
- python django基础一web框架的本质
web框架的本质就是一个socket服务端,而浏览器就是一个socker客户端,基于请求做出相应,客户端先请求,服务器做出对应响应 按照http协议的请求发送,服务器按照http协议来相应,这样的通信 ...
- Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00
目录 自己动手实现一个简易版本的web框架 手撸一个web服务端 根据请求 url 做不同的响应处理 基于wsgiref模块实现服务端 用wsgiref 模块的做的两件事 拆分服务端代码 支持新的请求 ...
- 6 大主流 Web 框架优缺点对比(转)
英文: Kit Kelly 译文:oschina https://www.oschina.net/translate/web-frameworks-conclusions 是该读些评论和做一些总结 ...
- Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号
一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...
随机推荐
- 高可用(vrrp)以及mysql主主备份部署
高可用说起来感觉很高大上,我刚接触的时候也是一头雾水,但是需求的时候很容易理解的,当一台服务器挂了另一台能够马上顶上去继续提供服务,这就叫做高可用,需求其实不难理解,只是需要自身根据项目的实际需求还有 ...
- PAT (Advanced Level) Practice 1001 A+B Format 分数 20
Calculate a+b and output the sum in standard format -- that is, the digits must be separated into gr ...
- 一个终端工具竟然有AI功能?使用了1天我立马把其他终端全卸载了!太香了!
前言 平常工作需要频繁使用终端工具,有一个好的命令行终端工具是非常重要的. 尤其是使用mac的小伙伴,估计不少人都觉得iterm2才是最好的终端工具. 其实起初我也是这么觉得的,但是最近直到我使用了这 ...
- Pytorch及Yolov5环境配置及踩坑
Pytorch及Yolov5环境配置及踩坑 1.何为Yolov5 yolo是计算机视觉方面用来进行目标检测的一个十分出名的开源框架,我搜不到官方的对此概括性的定义,但实际上也没什么必要,更重要的是会使 ...
- GitHub 供应链安全已支持 Dart 开发者生态
通过 Dart 和 GitHub 团队的共同努力,自 10 月 7 日起,GitHub 的 Advisory Database (安全咨询数据库).Dependency Graph (依赖项关系图) ...
- Java学习之路:快捷键
常用的快捷键 Ctrl+Shift:切换输入法 Ctrl+C:复制 Ctrl+V:粘贴 Ctrl+X:剪切 Ctrl+A:全选 Ctrl+Z:撤销 Ctrl+Y:返回撤销 Ctrl+S:保存 Shif ...
- 【python】Ubuntu中多条命令的运行
在模型训练时,往往需要消融实验,通常都是在一个程序运行结束后才再次手动运行下一个,不及时在电脑前可能无端浪费时间,因此需要让程序自动一个接一个去执行.受此启发,特了解了Ubuntu中多命令运行的内容. ...
- [leetcode]95.不同的二叉搜索树
Posted by 微博@Yangsc_o 原创文章,版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0 95. 不同的二叉搜索树 II 给你 ...
- 同一台电脑安装两个不同版本的mysql。简单暴力有效
1.先找到mysql的安装地址.找到my.ini 2.修改端口号(mysql默认端口是3306)我这里修改为3307 3.打开服务.找到刚刚修改的mysql版本 4.重新启动该服务(我已经安装了mys ...
- win10安装pip
Windows如何安装pip?请看下面方法: 1.搜索pip 2.点击下载文件. 3.下载压缩包 6.解压到桌面. 7.进入解压目录,按住Shift点击右键,选择打开powershell 8.执行py ...