目录

一: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三板斧)的更多相关文章

  1. Web框架之Django_01初识(三大主流web框架、Django安装、Django项目创建方式及其相关配置、Django基础三件套:HttpResponse、render、redirect)

    摘要: Web框架概述 Django简介 Django项目创建 Django基础必备三件套(HttpResponse.render.redirect) 一.Web框架概述: Python三大主流Web ...

  2. python三大主流web框架之Django安装、项目搭建

    这一篇我们将迎来python强大的web框架Django,相信大家都已经不陌生,本篇将介绍Django的安装及基础项目搭建,大神略过~ Django是需要我们手动pip安装的,首先我们来安装Djang ...

  3. 详说Flask、Django、Pyramid三大主流 Web 框架

    前言 目前随着 Python 在大数据.云计算.人工智能方面的热度,Python Web 应该也会被更多企业了解使用. Python Web 框架千万种,没必要都去了解和学习,身边总有人说高手都用 F ...

  4. Flask(1)- 主流web框架、初识flask

    一.Python 现阶段三大主流Web框架 Django.Tornado.Flask 对比 Django 主要特点是大而全,集成了很多组件(例如Models.Admin.Form等等), 不管你用得到 ...

  5. 6 大主流 Web 框架优缺点对比:15篇前端热文回看

    摘自:http://blog.csdn.net/VhWfR2u02Q/article/details/78993079 注:以下文章,点击标题即可阅读 <6 大主流 Web 框架优缺点对比> ...

  6. Django基础一Web框架的本质

    我们可以这样理解:所有的Web应用本质上就是一个socket服务端,而用户的浏览器就是一个socket客户端,基于请求做出响应,客户都先请求,服务端做出对应的响应,按照http协议的请求协议发送请求, ...

  7. python django基础一web框架的本质

    web框架的本质就是一个socket服务端,而浏览器就是一个socker客户端,基于请求做出相应,客户端先请求,服务器做出对应响应 按照http协议的请求发送,服务器按照http协议来相应,这样的通信 ...

  8. Django-手撸简易web框架-实现动态网页-wsgiref初识-jinja2初识-python主流web框架对比-00

    目录 自己动手实现一个简易版本的web框架 手撸一个web服务端 根据请求 url 做不同的响应处理 基于wsgiref模块实现服务端 用wsgiref 模块的做的两件事 拆分服务端代码 支持新的请求 ...

  9. 6 大主流 Web 框架优缺点对比(转)

    英文: Kit Kelly   译文:oschina https://www.oschina.net/translate/web-frameworks-conclusions 是该读些评论和做一些总结 ...

  10. Scrapy框架——介绍、安装、命令行创建,启动、项目目录结构介绍、Spiders文件夹详解(包括去重规则)、Selectors解析页面、Items、pipelines(自定义pipeline)、下载中间件(Downloader Middleware)、爬虫中间件、信号

    一 介绍 Scrapy一个开源和协作的框架,其最初是为了页面抓取 (更确切来说, 网络抓取 )所设计的,使用它可以以快速.简单.可扩展的方式从网站中提取所需的数据.但目前Scrapy的用途十分广泛,可 ...

随机推荐

  1. Nginx配置中一个不起眼字符"/"的巨大作用

    文章转载自:https://mp.weixin.qq.com/s/QwsbuNIqLpxi_FhQ5pSV3w Nginx作为一个轻量级的,高性能的web服务软件,因其占有内存少,并发能力强的特点,而 ...

  2. 1_requests基础用法

    requests模块的基本使用 什么是requests模块? Python中封装好的一个基于网络请求的模块 requests模块的作用? 用来模拟浏览器发请求 requests模块的环境安装: pip ...

  3. java设计模式之七大原则

    java设计模式 以下内容为本人的学习笔记,如需要转载,请声明原文链接   https://www.cnblogs.com/lyh1024/p/16724932.html 设计模式 1.设计模式的目的 ...

  4. PAT (Basic Level) Practice (中文)1015 德才论 分数 25

    宋代史学家司马光在<资治通鉴>中有一段著名的"德才论":"是故才德全尽谓之圣人,才德兼亡谓之愚人,德胜才谓之君子,才胜德谓之小人.凡取人之术,苟不得圣人,君子 ...

  5. Springboot 之 Mybatis-plus 多数据源

    简介 Mybatis-puls 多数据源的使用,采用的是官方提供的dynamic-datasource-spring-boot-starter包的 @DS 注解,具体可以参考官网: https://g ...

  6. 华为路由器NAT基本配置命令

    NAT地址转换 静态 [R1]int g0/0/0 [R1-GigabitEthernet0/0/0]nat static global 202.169.10.5 inside 172.16.1.1 ...

  7. 备份 MySQL 的 shell 脚本(mysqldump版本) shell脚本

    #!/bin/bash # 备份 MySQL 的 shell 脚本(mysqldump版本) # 定义变量 user(数据库用户名),passwd(数据库密码),date(备份的时间标签) # dbn ...

  8. MVVM视图模型

  9. 《Java并发编程的艺术》读书笔记:二、Java并发机制的底层实现原理

    二.Java并发机制底层实现原理 这里是我的<Java并发编程的艺术>读书笔记的第二篇,对前文有兴趣的朋友可以去这里看第一篇:一.并发编程的目的与挑战 有兴趣讨论的朋友可以给我留言! 1. ...

  10. MRR和Hits@n

    使用 MRR/Hits@n 评估链路预测 平均倒数秩(Mean reciprocal rank,MRR) MRR是一种衡量搜索质量的方法.我们取一个未被破坏的节点,找到距离定义为相似性分数的" ...