Django框架使用一 基本介绍,安装和建项篇
Django概述
Django 是在快节奏的编辑环境中开发的,设计使得常见 Web 开发任务快速且容易;它可以编写一个数据驱动的Web应用程序,简单的说就是不需要开发者操作数据库。
设计数据模型
尽管你在Django中可以不使用数据库,但是它提供了一个完善的可以用 Python 代码描述你的数据库结构的对象关联映射器,可以把它看做Hibernate框架或者ASP.Net中的EF框架。
数据模型语法 提供了许多丰富的方法来展现你的模型,因为它的对象操作方式,因此它几乎没有学习的额外成本.也就意味着开发者不必手写T-SQL语句,这些是由Django从你的应用通过对象关联映射器导入到数据库的,这是如何实现的呢? migrate
安装模型
Django提供了自己的命令行工具来创建你的模型,运行Django命令行工具来自动创建数据库表:
$ python manage.py migrate
migrate 指令会查找你所有可用的模块然后在你的数据库中创建还不存在的数据库表,同时还提供非常丰富的模式控制。
使用方便的API
生成数据库表后,你就可以使用一个便捷且功能丰富的Python API来访问你的数据。这些API是即时创建的,不需要代码生成,同时也是面向对象的,后面会详细介绍.
动态的管理界面:它不只是一个框架 ,而是一所完整的房子
一旦你的模型定义完毕之后,Django能自动创建一个专业的、可以用于生产环境的 管理界面 – 可以让认证的用户添加、修改和删除对象的一个站点。只需简单地在admin site中注册你的模型即可.
设计你的URLs
对于高质量的Web 应用来说,使用简洁、优雅的URL 模式是一个非常值得重视的细节。Django鼓励使用漂亮的URL设计且不会像.php或.asp一样把乱七八糟东西放到URLs里面.(这里Python社区无缘无故黑了一把PHP和ASP.Net,其实大部分Web应用程序框架都具备通过路由中心模块来自定义URL方式)
这仅仅是个入门
Django还包括了很多强大的Web开发的功能:
- 编辑视图 每个视图只负责两件事中的一件:返回一个包含请求的页面内容的 HttpResponse对象, 或抛出一个异常如Http404。
- 设计模板 Django有一个模板搜索路径,它让你最小化模板之间的冗余。
- 缓存框架 可以与memcached或其它后端集成;
- 聚合框架 可以让创建RSS和Atom的 feeds 同写一个小小的 Python 类一样容易;
- ...
安装Django
安装Python
Django支持Python2.7 3.2 3.3 3.4
如果需要安装数据库
只有当你需要使用“大型”数据库例如PostgreSQL、MySQL或Oracle时,安装关系型数据库;推荐使用非关系型数据库NoSQL:如mangoDB
删除旧版Django安装新版Django
可以通过多种方式安装:
- 安装操作系统所提供的发行包。对于操作系统提供了Django安装包的人来说,这是最快捷的安装方法;
- 安装官方正式发布的版本。 这对于想要安装一个稳定版本而不介意运行一个稍旧版本的Django的用户来说是最好的方式;
- 安装最新的开发版。这对于那些想要尝试最新最棒的特性而不担心运行崭新代码的用户来说是最好的。
验证是否安装完成
在Python环境下输入:
>>>import django
>>>print(django.get_version())
1.10.3
或者直接在终端输入:
$ python -c "import django; print(django.get_version())"
1.10.3
这里我安装的Django是1.10.3版本的.尽量安装新版本.安装过程中可能由于环境问题及包之间依赖关系,会出现很多问题需要解决,网上基本都能找到解决方案.
使用Django
创建项目
$ django-admin startproject mywebsite
上面的语句可以在任意非web服务器目录执行,Django提倡开发时使用Python内置的WSGI标准接口提供的web服务器.创建成功后会生成如下的目录结构:
> mywebsite/ # 根目录仅仅是项目的一个容器。它的命名对Django无关紧要;你可以把它重新命名为任何你喜欢的名字
manage.py # 命令行工具,可以使你用多种方式对Django项目进行交互
mywebsite/ # 该目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)
init.py # 这是个空文件,它告诉Python这是一个包目录,它所在的目录应该被看作是Python包
settings.py # 该Django 项目的设置/配置
urls.py # 该Django项目的URL声明;你的Django站点的“目录”
wsgi.py # 用于你的项目的与WSGI兼容的Web服务器入口;上面提到的内置web服务器入口
和数据库建立连接
现在,编辑mysite/settings.py。它是一个普通的Python模块,带有模块级别的变量,用来表示Django的配置。
默认情况下,该配置使用SQLite。如果你是数据库初学者,或者你只是想要试用一下Django,它是最简单的选择。 SQLite包含在Python中,所以你不需要另外安装其他任何东西来支持你的数据库。 然而,当你开始第一个真正的项目时,你可能想使用一个更健壮的数据库比如PostgreSQL来避免在未来遇到令人头疼的数据库切换问题。
如果你希望使用另外一种数据库,请配置合适的database binding,并在 DATABASES 'default'条目中修改以下的配置以匹配你的数据库连接的设置:
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'HOST': '127.0.0.1',
'PORT': '3306',
'NAME': 'DjangoDB',
'USER': 'root',
'PASSWORD': '',
}
}
当你编辑mysite/settings.py时,请设置TIME_ZONE为你自己的时区。
另外,请注意文件顶端的INSTALLED_APPS设置。它保存这个Django实例中激活的所有的Django应用的名字。 应用可以在多个项目中使用,而且你可以将这些应用打包和分发给其他人在他们的项目中使用。
默认情况下,INSTALLED_APPS包含下面的应用,它们都是Django 与生俱来的:
- django.contrib.admin —— 管理站点。你将在本教程的第2部分使用到它。
- django.contrib.auth —— 认证系统。
- django.contrib.contenttypes —— 用于内容类型的框架。
- django.contrib.sessions —— 会话框架。
- django.contrib.messages —— 消息框架。
- django.contrib.staticfiles —— 管理静态文件的框架。
这些应用,默认包含在Django中,以方便通用场合下使用。
然而上面的部分应用至少需要使用一个数据库表,因此我们需要在使用它们之前先在数据库中创建相应的表。要做到这一点,请运行以下命令:
$ python manage.py migrate
migrate查看INSTALLED_APPS设置并根据mysite/settings.py文件中的数据库设置创建任何必要的数据库表,数据库的迁移还会跟踪应用的变化(我们稍后会讲到)。你会看到对每次迁移有一条信息。
以上包含的默认应用用于常见的场景,但并不是每个人都需要它们。 如果你不需要它们中的任何一个或所有应用,可以在运行migrate之前从INSTALLED_APPS中自由地注释或删除相应的行。migrate 命令将只为INSTALLED_APPS中的应用运行数据库的迁移。
启动项目
让我们验证一下你的Django项目是否工作。 如果你在外层的mysite目录下,那么进入这个目录,然后运行以下命令:
$ python manage.py runserver [ip:port]
你将看到命令行下输出了以下内容:
Performing system checks...
0 errors found
May 13, 2015 - 15:50:53
Django version 1.8, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.
这表明你已经启动了Django开发服务器,一个用纯Python写的轻量级Web服务器。 我们在Django中内置了它,这样你就可以在不配置用于生产环境的服务器 —— 例如Apache —— 的情况下快速开发出产品,直到你准备好上线。
请注意:不要在任何生产环境使用这个服务器。它仅仅是用于在开发中使用。(我们的重点是编写Web框架,非Web服务器。)
既然服务器已经运行,请用你的浏览器访问
在淡蓝色背景下,你将看到一个“Welcome to Django”的页面。 它运行成功了!
runserver的自动重载
开发服务器会根据需要自动重新载入Python代码。 你不必为了使更改的代码生效而重启服务器。 然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。
至此在我们已经在机器上已经搭建了一个Django的Web开发环境,我机器上的情况是Python2.7+Django1.10.3+MySQL5.6.34
Django框架使用一 基本介绍,安装和建项篇的更多相关文章
- Django框架(十一):模板介绍、模板语言、模板继承、HTML转义
1. 模板介绍 1.1 模板的功能 产生html,控制页面上展示的内容.模板文件不仅仅是一个html文件. 模板文件包含两部分内容: 静态内容:css.js.html. 动态内容:用于动态去产生一些页 ...
- Django项目的创建与介绍.应用的创建与介绍.启动项目.pycharm创建启动项目.生命周期.三件套.静态文件.请求及数据.配置Mysql完成数据迁移.单表ORM记录的增删改查
一.Django项目的创建与介绍 ''' 安装Django #在cmd中输入pip3 #出现这个错误Fatal error in launcher: Unable to create process ...
- Python学习笔记_04:Django框架简介
目录 1 什么是Django? 2 Django框架的开发环境搭建 3 Django操作MySql数据库简介 4 功能强大的Django管理工具应用 1 什么是Django? Django是应用于We ...
- Django框架的前奏(安装及介绍)
几个重要的概念: web的本质: 浏览器中输入网址敲回车发生了几件事? 1.浏览器向服务端发送请求 2.服务端接收请求 3.服务端返回相应的响应 4.浏览器接收响应 根据特定的规则渲染页面展示给用户 ...
- Django 框架介绍
Django 框架介绍 MVC框架和MTV框架 简单了解一下什么是MVC框架.MVC(Model View Controller),是模型(model)-视图(view)-控制器(controller ...
- Django框架介绍之一
这片博文就是对django有个大概的了解,通俗的说,就是先让django跑起来. django安装 在linux上安装如下: 源码安装: tar -zxvf Django-1.9.13.tar.gz ...
- 第三百零三节,Django框架介绍——用pycharm创建Django项目
Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- 一 Django框架介绍——用pycharm创建Django项目
Django框架介绍 Django是一个开放源代码的Web应用框架,由Python写成.采用了MVC的软件设计模式,即模型M,视图V和控制器C.它最初是被开发来用于管理劳伦斯出版集团旗下的一些以新闻内 ...
- Django框架的安装与使用
Django框架的安装与使用 在使用Django框架开发web应用程序时,开发阶段同样依赖wsgiref模块来实现Server的功能,我们使用Django框架是为了快速地开发application, ...
随机推荐
- Android之TextView的样式类Span的使用详解
Android中的TextView是个显示文字的的UI类,在现实中的需求中,文字有各式各样的样式,TextView本身没有属性去设置实现,我们可以通过Android提供的 Spannab ...
- angularjs与jquery特效slidetoggle结合
之前使用jquery的slidetoggle方法,可以轻易的实现元素的收缩展开:使用angularjs后,没有找到相关的方法,通过多方面查资料,自己写了个demo,展示slidetoggle的angu ...
- css3实现的动画效果
在线演示:莲花盛开 在线演示:忙碌光标效果 在线演示:发光效果
- 部署Icinga-php4
关于Icinga-php4的文档信息及下载地址,可参考:http://icinga-cn.sourceforge.net/ 我这里使用的是icinga-pnp4-cn-1.12.2.tar.xz. 因 ...
- No zuo no die:DDD 应对具体业务场景,Domain Model 重新设计
写在前面 上联:no zuo no die why you try 下联:no try no high give me five 横批: let it go上联:no zuo no die why y ...
- ORA-00257 archiver error 处理思路
1.首先查下oerr给出的简要说明 2.查询V$RECOVERY_AREA_USAGE信息 3.根据实际空间剩余情况先适当增加归档目录的大小,保证先恢复业务 4.查看备份是否存在问题 1.首先查下oe ...
- Jackson的简单用法
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1简介 Jackson具有比较高的序列化和反序列化效率,据测试,无论是 ...
- c#和Javascript中去重总结
一.前言 去重在我们的开发过程中经常遇到,避免重复元素的添加,我们需要对获取到的集合(包括List.Array等) 做相关的过滤操作.确保对象的唯一性,从而达到保证数据不冗余重复.由于自己是做.net ...
- js构建ui的统一异常处理方案(二)
上一篇文章,我分析了同步代码做异常处理是基于责任链模式,而通过try.catch等语句可以很容易地实现这种责任链模式.但是如果是异步调用,我们无法直接通过try.catch语句实现责任链模式,并且通过 ...
- OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)
图像的几何变换是在不改变图像内容的前提下对图像像素的进行空间几何变换,主要包括了图像的平移变换.镜像变换.缩放和旋转等.本文首先介绍了图像几何变换的一些基本概念,然后再OpenCV2下实现了图像的平移 ...