django基础

1.定义

可执行的二进制指令的集合。用于执行一定功能的计算机程序。

2.作用:

  解决实际生活中的问题

3.核心:

数据处理

4.处理方式:

增删改查(crud)
个软件在处理流程上不一定相同

5.从使用环境分类:

>.单机
>.网络

6.从架构分类

>.C/S   客户端——服务器
>.B/S   浏览器——服务器


网站和软件的区别

1.网站:

>.可以在客户端通过浏览器可以直接访问。

>.网站和软件的区别
网站包含软件,软件不能直接表示网站。

>.分类
静态:信息展示。
动态:访问到网页数据,并且可以数据处理。

>.AJAX:异步刷新技术,可以在不刷新网页的情况下从服务器获取数据;通过DOM操作将数据展示到网页中。

2.web

>.即为广域网

>.网络分层
局域网/城域网/广域网

>.web软件
动态网站网络软件,即为B/S结构的网络软件

3.web开发

>.对B/S结构的软件进行功能开发

步骤:
==================================

>.需求分析

>.软件结构设计

>.开发

>.测试

>.部署和维护     


软件结构

1.处理结构:

>.软件界面

>.数据处理

>.数据存储

2.扩展结构

>.界面——程序控制界面

>.数据处理——程序控制数据库

>.数据存储

3.软件结构设计:分层模型

>.软件代码可以在设计过程中分成不同的层次结构,主要区别为上下层代码关系。
|--myproject/               项目文件夹
    |--main.py              程序入口
    |--menu.py              界面
    |--service.py           程序的业务处理类、服务类,用于功能处理
    |--data.py              数据处理类,用于对数据增删改查

|--mysql                    数据存储,数据仓库

>.开发原则:
上层代码可以调用下层代码的变量、函数、方法;
下层代码尽可以返回结果给上层代码使用
同层之间可以互相调用
不可以跨蹭调用

web软件

>.web服务器通过web接口来连接程序

>.web接口是实现了wsgi网关协议的接口
wsgi:   web service gateway interface

>.python中的web开发,一般来说底层都实现了wsgi的web接口,以实现浏览器访问服务器资源的数据。

1.定义一个web接口:

from wsgiref.simple_server import make_server

def app(env,response):
    #设置响应头:描述相应数据的内容
    response("200 OK",[('Content-type','text/html')])
    #返回数据
    return [b'<h1>hello</h1>']

#导入一个创建服务器的内建函数


#开始创建服务器
if __name__ == "__main__":

    h_server = make_server('',8000,app )
    print("server is starting...")

    #启动服务
    h_server.serve_forever()
    #注意本行是空行 一定要留

.上边的程序段就等于设置了一个web接口,通过运行此程序,就可以通过浏览器访问了,本地访问http://localhost:8000/就可以访问数据了


2.数据分发

from wsgiref.simple_server import make_server

def app(env,response):
    #设置响应头
    response('200 OK', [('Content-type','text/html')])
    #打印一个参数
    print(env['PATH_INFO'][1:])
    path = env['PATH_INFO'][1:]
    #判断不同的url地址,调用不同的参数处理
    if path == 'liangshi':
        return liang_shi(env, response)
    elif path == 'sichou':
        return si_chou(env,response)

    #返回默认值
    return [b'<h1>coco</h1>']


#定义二级处理函数
#访问粮食
def liang_shi(env, response):
    return [b'<h1>liangshi</h1>']

#访问丝绸
def si_chou(env, response):
    return [b'<h1>sichou</h1>']


if __name__ == '__main__':
    http_server = make_server('', 8000,app)
    print("server is starting...")

    http_server.serve_forever()

以上程序相当于接口的分发数据方式简单实现



Django

1.基本概念

由python编写的,专门用于快速、高效的开发web应用程序的框架。

框架:是模块的集合,具备模块的所有功能,也有简单的功能处理流程,方便开发人员对于对应流程自动化处理。框架也会根据不同的功能流程具有特定的软件结构模式,也算是一个独立的软件。

类似于pygame,是Python中代码块的集合。一般包含多个变量、函数、类型。

2.特点

先进的MVT处理模式
自动化的项目构建管理方式
完善的数据模型处理
强大的后台管理系统
优秀的ORM操作模块
优雅的模板操作封装
优异的缓存支持
完美的表单操作封装
内建sqlite数据库,并且支持其他各种类型数据库。

3.Django中的MVT处理模式

关于web软件的架构模式

MVC和MVT

MVC:全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    MVT:
        m表示model,负责与数据库交互
        v 表示view,是核心,负责接收请求、获取数据、返回结果
        t 表示template,负责呈现内容到浏览器

4.安装Django

最新版 2.0.X 学习和测试
最流行 1.8~1.11 公司常用

默认安装最新版

安装指定版使用:

    pip install django==1.11

5.项目搭建

创建项目
cmd中
dango-admin startproject 项目名称(也是目录名称)

    >>.目录结构:
    |-- myproject/   项目的主目录,存放项目中所有文件的文件夹
        |-- myproject/  项目的主项目/根项目,用来管理所有的项目
            |-- __init__.py 包定义文件定义了存放这个文件的文件夹是一个python包
            |-- settings.py 项目中所有的配置信息存放的模块,配置模块
            |-- urls.py 路由模块,定义url地址和访问的处理函数之间的映射关系
            |-- wsgi.py 实现了wsgi网关协议的模块,表示Django项目支持wsgi网关协议
        |-- manager.py  项目的命令行支持模块,可以在命令行执行不同的命令实现不同的功能

.测试项目
在cmd进入项目目录

    python manage.py runserver

之后在浏览器中访问

    localhost:8000
    即可查看运行成功与否

    >.创建跟项目视图

        >>.创建一个view.py在跟目录
            在此模块中创建一个视图处理函数,返回一个数据

        >>.配置路由应用
            myproject/urls.py 模块是路由模块
            为此模块添加一个路由映射地址



        >>.运行程序

.开发二级页面
根目录执行命令行:

    dango-admin startapp sec_index(二级网页/网站名称)

二级页面目录结构:

    |-- myblog/ 模块的根目录;二级网站的根目录
        |-- migrations/ 数据库文件存放的文件夹[数据库部分细讲]
        |-- __init__.py 包定义文件
        |-- admin.py 后台管理文件[后台管理系统细讲]
        |-- apps.py 模块名称定义文件
        |-- models.py   数据模型定义文件
        |-- test.py 测试文件——一般用不上
        |-- views.py    视图模块,定义视图处理函数

.将二级页面的模块应用添加到根项目中:

    修改myproject/settigs.py
    INSTALLED_ADD 选项列表中,添加sec_index

.编写二级目录的视图处理模块

.配置路由模块

    sec_index创建一个路由模块urls.py

将模块中的路由添加到根目录路由模块中

根目录的路由是主路由
二级页面和目录的路由是子路由

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,599评论 18 139
  • 自强学堂Django教程 目录 Django是目前最流行的Python Web框架。 一、Django的MTV模式...
    CaiGuangyin阅读 1,135评论 4 3
  • # Python 资源大全中文版 我想很多程序员应该记得 GitHub 上有一个 Awesome - XXX 系列...
    aimaile阅读 26,441评论 6 428
  • 作为一个妥妥的小白,初学Django,被它的关系搞得晕头转向的。(一)Django简介 1 、什么是Django?...
    Yinag阅读 529评论 0 0
  • 我认可内在的那个我,知道他和我的源头是一体的。我的真我超越我的身体、思想,甚至超乎我的想象。他是不可思议地巨大,以...
    茗一笑阅读 76评论 0 0