框架_Django_1

Django 环境搭建

虚拟环境搭建(Ubuntu,windows类似)

- 安装virtualenv
pip  install virtualenv

- 统一管理工具
pip install virtualenvwrapper -i https://pypi.douban.com/simple

- 查看安装目录
type type virtualenvwrapper.sh

- 添加到用户环境变量中
  vi ~/.bashrc 在最后添加
  export WORKON_HOME=/home/atom/.virtualenvs
  source /home/atom/.local/bin/virtualenvwrapper.sh
  > 备注: 根据virtualenvwrapper.sh位置配置
  
- 创建对应目录
  mkdir ~/.virtualenvs
  
- 刷新环境
  source ~/.bashrc

安装直接workon  环境名就可以进去
- 创建虚拟环境(默认是python2.7)
  # EVN_NAME虚拟环境的名字,自己设置,没有影响
  mkvirtualenv EVN_NAME

- 进入到虚拟环境中
  workon EVN_NAME
  > 此时就是进入到虚拟环境中,再次输入Python时,还是显示2.7版本(默认)

- 退出虚拟环境
  deactivate
  
- 删除虚拟环境
  rmvirtualenv EVN_NAME
  
- 创建python3的虚拟环境
  mkvirtualenv EVN_NAME -p /usr/bin/python3.5
  > 查看python3位置: type python3
  > 此时再次输入python就是为3.5版本了

一般而言都开始看框架了 ,pycharm肯定知道怎么用了吧,基本工具。

Django基本流程

Django的特点

强大的数据库功能: 拥有强大的数据库操作接口(QuerySet API),如需要也能执行原生SQL。
自带强大的后台: 几行简单的代码就让你的网站拥有一个强大的后台,轻松管理内容!
优雅的网址: 用正则匹配网址,传递到对应函数,随意定义,如你所想!
模板系统: 强大,易扩展的模板系统,设计简易,代码,样式分开设计,更容易管理。
(注:前后端分离时,也可以用Django开发API,完全不用模板系统。)
缓存系统,与Memcached, Redis等缓存系统联用,更出色的表现,更快的加载速度。
国际化,完全支持多语言应用,允许你定义翻译的字符,轻松翻译成不同国家的语言。

软件设计典范-MVC模式

 Model(模型)
    应用程序中用于处理应用程序数据逻辑部分;
    通常模型对象负责在数据库中存取数据;
- View(视图)
    应用程序中处理数据显示部分;
    通常视图是依据模型数据创建的;
- Controller(控制器)
    应用程序中处理用户交互部分;
    通常控制器负责从视图中读取数据,控制用户输入,并向模型发送数据;

优点: 降低各个功能模块之间的耦合性,方便变更,更容易重构代码,最大程度上实现代码的重用。

Django设计模式MTV

- Model(模型)
    负责业务对象与数据库对象(ORM)
- Template(模板)
    负责如何把页面展示给用户
- View(视图)
    负责业务逻辑,并在适当的时候调用Model和Template

Django还有一个url分发器,它的作用是将一个个URL的页面请求分发给不同的view处理,view再调用相应的Model和Template。

Django 环境搭建

Django版本

会这两种就好了,感觉就是区别在于路由的设置,别的变化不大。
Django 1.11.x 支持 Python 2.7, 3.4, 3.5 和 3.6(长期支持版本 LTS)
Django 2.0.x 支持 Python 3.4, 3.5 和 3.6 (注意,不再支持 Python 2)

安装

- 安装
进入虚拟环境
  $ pip install Django==1.11.4
- 验证是否成功()
  进入到python环境(终端中输入python)
  >>> import django
  >>> django.get_version()
  '1.11.4'

创建Django项目

- 新建Django项目:
    $ django-admin startproject projectName
    
- 目录层级说明:
    manage.py 一个命令行工具,可以使我们多种方式对Django项目进行交互
    projectName/__init__.py 一个空文件,告诉python这个目录被看做一个python包(有这个能称之为包)
    projectName/settings.py 项目的配置文件
    projectName/urls.py  项目URL声明(路由器)
    projectName/wsgi.py    项目与WSGI兼容的Web服务器入口(网关接口,通常用在现线上环境部署)
    
- 项目的运行:
    $ python manage.py runserver 
    $ python manage.py runserver 0.0.0.0:8000
    $ python manage.py runserver 0:8000  # 0.0.0.0简写方式
    
- settings.py项目配置文件
    BASE_DIR 项目根目录
    SECRET_KEY 秘钥
    DEBUG 调试的开启
    ALLOWED_HOSTS 允许访问的主机
    INSTALLED_APPS 安装的应用
    MIDDLEWARE 中间件
    ROOT_URLCONF 站点url配置
    TEMPLATES 模板
    WSGI_APPLICATION wsig应用
    DATABASES 数据库
    AUTH_PASSWORD_VALIDATORS 密码验证规则
    LANGUAGE_CODE 语言(中文: zh-hans)
    TIME_ZONE 时区 (中国时区: Asia/Shanghai)

- 站点管理的汉化版(在settings.py中替换以下内容即可)
    LANGUAGE_CODE = 'en-us' 替换 LANGUAGE_CODE = 'zh-Hans'
    TIME_ZONE = 'UTC' 替换 TIME_ZONE = 'Asia/Shanghai'

创建应用

-  首先cd projectName,进入项目目录下

- 然后python manage.py startapp appName
项目文件说明: 
  admin.py 站点配置
  models.py 模型
  views.py 视图
一个项目中可以创建多个应用;

激活应用

settings.py文件中,将appName应用加入到INSTALL_APPS选项中.
注册:
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'appName'   # 添加自己的应用
]
请求流程: 用户请求 -> urls -> views -> templates -> 用户响应 【从后往前写】

视图函数

- 方式一
def hello(request):
    return HttpResponse('hello')

- 方式二
def hello(request):
    # hello.html模板
    return render(request, 'hello.html')

启动服务器

语法:
    python manage.py runserver ip:port
例如:
    python manage.py runserver
备注:
    IP可以不写,代表即是本机IP
    端口号默认是8000
    启动成功后,在浏览器可以看到”It worked!”
说明:
    这是一个纯python写的轻量级web服务器,仅仅在开发测试阶段中使用
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,047评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,807评论 3 386
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,501评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,839评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,951评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,117评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,188评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,929评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,372评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,679评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,837评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,536评论 4 335
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,168评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,886评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,129评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,665评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,739评论 2 351

推荐阅读更多精彩内容