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的用途十分广泛,可 ...
随机推荐
- Alertmanager高可用
为了提升Promthues的服务可用性,通常用户会部署两个或者两个以上的Promthus Server,它们具有完全相同的配置包括Job配置,以及告警配置等.当某一个Prometheus Server ...
- PAT (Basic Level) Practice 1017 A除以B 分数 20
本题要求计算 A/B,其中 A 是不超过 1000 位的正整数,B 是 1 位正整数.你需要输出商数 Q 和余数 R,使得 A=B×Q+R 成立. 输入格式: 输入在一行中依次给出 A 和 B,中间以 ...
- 如何通过 Java 代码隐藏 Word 文档中的指定段落
在编辑Word文档时,我们有时需要将一些重要信息保密. 因此,可以隐藏它们以确保机密性. 在本文中,将向您介绍如何通过 Java 程序中的代码隐藏 Word 文档中的特定段落.下面是我整理的具体步骤, ...
- 企业MES系统与ERP信息集成要素有哪些?
关于要讲明企业MES系统与ERP信息集成要素有哪些,得先弄清楚他们之间的关系:从工厂的管理来说,ERP在上MES在下,ERP统领企业全局包括MES,为管理层服务,重心在于企业决策,ERP对企业宏观管理 ...
- NSIS皮肤插件:vcl-styles-plugins
vcl-styles-plugins简介 NSISVCLStyles plugin (dll)是一款应用于nsis安装程序的皮肤插件,插件大小约为1.6MB,实际应用在安装程序中压缩后约为550 ...
- HDU1114 Piggy-Bank (完全背包)
完全背包模板,和01背包相比不用倒推,因为一种可以选多个. 这道题求最小,dp数组初始化为无穷即可. 1 #include<iostream> 2 #include<cstring& ...
- C++函数模板和类模板的使用
一.函数模板 #include<iostream>using namespace std;template<class T1,class T2>T1 add(T1 x,T2 y ...
- 安装与配置FTP服务器
概: 文件传输协议 (File Transfer Protocol,FTP),用于在网络上进行文件传输的协议.如果用户需要将文件从本机发送到另一台计算机,可以使用FTP上传操作:反之,用户可以使用 ...
- 构建Springboot项目、实现简单的输出功能、将项目打包成可以执行的JAR包(详细图解过程)
1.构建SpringBoot项目 大致流程 1.新建工程 2.选择环境配置.jdk版本 3.选择 依赖(可省略.后续要手动在pom文件写) 4.项目名 1.1 图解建立过程 1.2 项目结构 友情提示 ...
- JUC(4)Callable和常用的辅助类
1.Callable 1.可以有返回值 2.可以抛出异常 3.方法不同.run()/call() future Task 细节: 1.有缓存 2.结果可能需要等待,会阻塞 2.常用的辅助类 2.1 C ...