Python-Django-入门

一、Django介绍

1 、什么是框架

只要你知道一点构建动态网站是怎么回事的话,那么就一定能体会到不断重复地发明某些标准特性是多么痛苦的一
件事情。你得创建数据库结构,把数据导人导出数据库,处理URL,验证用户输人,提供编辑工具,还得关心安全性和
可用性。
终于,你意识到每次都重新实现这些特性实在是太浪费生命了。所以,你决定要重新开发一套自己的库来提供这
些功能。或者说,从你最新的“创造"中把这些库提取出来。之后,如果要开始一个新项目的话,你第一件要做的事情就
是安装你的库。这能大大节约你的工作时间。
但是,事情可没那么简单。如果客户需要的特性不在你的库里怎么办,没关系,加进来就好了。而每个客户都需
要不同的东西,结果就变成你在每个服务器上安装的库都有不同的版本。这绝对是没有办法维护的。
有了教训以后,你回过头来把基础库和最好的add-on从各个项目里拿出来重新组合在一起。对绝大多数项目来说
你不再需要直接调整库代码,只需要改动一下配置文件就可以了,虽然你的代码库越来越大、越来越复杂,但是它也变
得非常强大。这个代码库就是所谓的Web框架。
Django是一个高级PythonWeb框架,劳伦斯出版集团为了开发以新闻内容为主的网站,而开发出来了这个框架,
Django遵守BSD版权,初次发布于 2005 年 7 月, 并于 2008 年 9 月发布了第一个正式版本 1. 0 。

2 、Django特点

1 、开发速度快,Django旨在帮助开发人员尽可能快地从概念到应用程序。
2 、功能齐全,Django包含了许多可用于处理常见Web开发任务的额外功能,用户身份验证,内容管理,站点地图,
RSS源以及许多其他任务。
3 、安全性高,Django非常重视安全性,并帮助开发人员避免许多常见的安全错误,例如SQL注入、跨站点脚本、跨
站点请求伪造。它的用户身份验证系统提供了一种安全的方法来管理用户账户和密码。
4 、Django采用了MVC的软件设计模式,即模型M,视图V和控制器C,并且取了个名字叫MVT。

3 、MVC模型的介绍

MVC模式 (Model-View-Controller)是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型
(Model)、视图(View)和控制器(Controller)。
MVC模式最早由TrygveReenskaug在 1978 年提出[ 1 ],是施乐帕罗奥多研究中心(XeroxPARC)在 20 世纪 80 年代为程
序语言Smalltalk发明的一种软件设计模式,是为了将传统的输入(input)、处理(processing)、输出
(output)任务运用到图形化用户交互模型中而设计的。随着标准输入输入设备的出现,开发人员只需要将精力集中
在业务逻辑的分析与实现上。后来JAVAEE采用MVC的设计模式,这种分工开发的方式受到了广大开发者的认
可,后来包括java,php,python等语言都有MVC设计模式的框架。
MVC框架的核心思想是解耦,让不同的代码块之间降低耦合,增强代码的可扩展性和可移植性。
MVC模式把用户界面交互分拆到不同的三种角色中,使应用程序被分成三个核心部件: Model(模型) 、
View(视图) 、 Control(控制器)
Model: 主要封装对数据库层的访问,内嵌ORM框架,实现面向对象的编程来操作数据库。
View: 用于封装结果,内嵌了模板引擎,实现动态展示数据
Controller: 用于接收用户请求,处理业务逻辑,与Model和View交互,返回结果
在MVC模型中,如果不需要查询数据库,那么Controller将不会与Model交互,直接与View交互,返回html页面。

4 、MVT模型介绍

M(Model) ,与MVC中的M功能相同,负责数据处理,内嵌了ORM框架
V(View) ,与MVC中的C功能相同,接收请求,业务处理,返回响应
T(Template) ,与MVC中的V功能相同,负责封装构造要返回的html,内嵌了模板引擎

二、虚拟环境搭建

在开发中安装模块的方法:
pipinstall模块名称
之前我们安装模块都是直接在物理环境下安装,这种安装方法,后面一次安装的会覆盖掉前面一次安装的。那如果
一台机器上面开发多个项目使用到不同版本的模块呢?怎么样做才能不受版本影响!那么需要用到虚拟环境,每个
虚拟环境互相隔离,在一个虚拟环境中安装卸载模块其他不受影响!

1 .python虚拟环境安装

Windows下创建虚拟环境

选择一个用来存放虚拟环境的文件,如E:/python 3
cdE:python 3 #进入该文件

virtualenvenvname #创建一个名字为envname的虚拟环境

dir #查看当前目录可以知道一个envname的文件已经被创建

virtualenv-ppython 2 envname #如果安装了多个python版本,如py 2 和py 3 ,需要指定使用哪个创建虚拟环境
注意:如果不识别virtualenv命令,可能是python安装路径没添加到系统环境变量或没安装virtualenv或没有
重新打开一个cmd窗口;
启动虚拟环境
#进入虚拟环境文件
cdenvname

#进入相关的启动文件夹

cdScripts

activate #启动虚拟环境

deactivate#退出虚拟环境

2 .虚拟环境中安装指定版本号的模块

1 .在虚拟环境中安装模块,直接使用pip安装就可以。
2 .查看虚拟环境下安装了那些包
pipinstallvirtualenv
pipinstallvirtualenvwrapper-win #Windows使用该命令
pipinstalldjango== 1. 8. 2
pipfreezelist
3 .项目开发完成,需要上线时,将开发环境使用的包,导出安装到生产环境下。
4 .将开发环境导出的包的文件requirements.txt,安装到生产环境

三、创建项目

1 、创建一个博客项目

django的项目结构是由多个应用组成,每一个应用实现不同的功能。
安装好django之后,django提供了一个管理工具django-admin.py,可以使用django-admin.py来创建一个项目。
下面我们来创建一个博客项目,项目名称叫blog。
环境说明:
django 版本 1. 8. 2 这个版本比较稳定,资料比较多,所以本课程使用 1. 8. 2 版本
python 3. 5. 2
unbuntu 16. 04
1 、在家目录创建一个文件夹保存项目
2 、进入刚才创建的虚拟环境,创建名称为blog博客项目
workonpy 3
django-adminstartprojectblog
执行完命令后在myblog目录下生成一个名问blog项目文件夹。
执行这条命令之后自动创建了一个名为blog项目,并且django帮我们生成了 5 个文件。 简单介绍下文件:
manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互blog/
mkdirmyblog
cdmyblog
pipinstall-rrequirements.txt
pipfreezelist>requirements.txt
init.py:一个空文件,告诉Python该目录是一个Python包。
blog/setting.py:项目的配置文件
bolg/urls.py:URL分发器(路由配置文件)
blog/wsgi.py:项目与WSGI兼容的Web服务器入口
3 、运行项目
看到下面这行提示说明服务已经运行起来
在浏览器中访问:http: 127. 0. 0. 1 : 8000 看到下面这个界面说明项目已经正确创建
pythonmanage.pyrunserver
默认情况下,runserver命令在内部IP的 8000 端口启动开发服务器。如果你需改变服务器的端口,把要使用的端口
作为一个命令行参数传递给它。例如,这个命令在 8080 端口启动服务器:
如果你需改变服务器的IP地址,把IP地址和端口号放到一起。 因此若要监听所有的外网IP,请使用:

2 、应用创建

前面提到django项目中一个应用实现一个功能,那刚才创建好了项目,现在我们来创建一个应用。 1 、创建一个
名称为personal_blog的应用
创建好应用后的整个项目的目录结构:
pythonmanage.pyrunserver 0. 0. 0. 0 : 8080
django-adminstartapppersonal_blog
或者
pythonmanage.pystartapppersonal_blog
pythonmanage.pyrunserver 8080
创建好应用之后的文件介绍:
db.sqlite 3 文档型的轻量级数据库,django默认使用sqlite数据库
personal_blog 应用目录名
admin.py web后台管理,用于注册模型类
migrations 保存迁移时生成的文件
models.py 编写模型类,就是MVT模型中的M
tests.py 用于开发测试类
views.py 编写视图函数,MVT模型中的V

3 、安装应用

Django应用是可以“热插拔”的,即可以在多个项目中使用同一个应用,也可以分发这些应用,因为它们不需要
与某个特定的Django安装绑定。
编辑blog/settings.py文件,并修改INSTALLED_APPS设置以包含应用的名称’personal_blog’。如下
代码:
前面的这些应用是django自带的应用,如果我们需要新加应用,只需要往后面加。
INSTALLED_APPS=(
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'personal_blog',#我们自己写的应用
)
项目与应用的关系:
应用是一个Web应用程序,它完成具体的事项 —— 比如一个博客系统,一个简单的投票应用。
项目是一个特定网站中相关配置和应用的集合,一个项目可以包含多个应用,一个应用可以运用到多个项目中去。

四、Admin站点管理

1 、站点介绍

在shell下面去编辑博客非常麻烦,前面提到过django自带强大的功能,其中就有一个内容管理。 下面我们来使用
django自带的Admin站点管理去编辑我们的blog内容。
Django是在新闻编辑室这样的环境中被开发出来的,这样的环境中“内容发布者”站点和“公共”站点有着非常明
显的界限,网站管理者使用管理界面来添加新闻故事、新闻事件、体育比赛分数等。这些内容会被展示在公共
站点上。Django为网站管理者创建统一的管理界面用以编辑这些内容。
Django会根据模型类文件完全自动地生成管理界面。
管理界面不是让访问网站的人使用的,它服务于网站管理者,用于网站的管理员。

2 、创建管理员账号

启动开服服务器:
在浏览器中输入http:// 127. 0. 0. 1 : 8000 /admin进入后台管理,但是需要管理员账号密码。默认是没有的,需要开
发者创建。
创建后台管理员账号,执行这创建管理员账号命令
执行上面命令后输入按提示输入
pythonmanage.pycreatesuperuser
pythonmanage.pyrunserver
Username(leaveblanktouse'python'):admin #用户名
Emailaddress: 123 @ 163 .com #邮箱
Password:*****
你需要设置的密码
Password(again):****
# 密码,注意:在终端上输入密码是看不见的,这里用*号代表密码。实际上是输入
#重复输入密码
Superusercreatedsuccessfully. #提示successfully创建成功
用刚才创建的账号密码 登录

3 、管理界面本地化

首次登录之后是英文界面,后台管理是给管理员使用的,英文界面阅读起来就比较困难了,这里可以将后台管理本地
化。本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,
时区使用亚洲/上海时区ÿ
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

丶清子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值