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, ...
随机推荐
- 应用程序框架实战三十八:项目示例VS解决方案的创建(一)
进行项目开发的第一步,是创建出适合自己团队习惯的VS解决方案,虽然我已经提供了项目示例,但毕竟是我创建的,你直接使用可能并不合适,另外你如果尝试模仿重新创建该示例,中间可能碰到各种障碍,特别是项目间的 ...
- scikit-learn K近邻法类库使用小结
在K近邻法(KNN)原理小结这篇文章,我们讨论了KNN的原理和优缺点,这里我们就从实践出发,对scikit-learn 中KNN相关的类库使用做一个小结.主要关注于类库调参时的一个经验总结. 1. s ...
- EasyUI DataGrid formatter 格式化增加链接
function fLoadTable() { $('#tt').datagrid({ title: '', ...
- ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log. 一般可通 ...
- Unity调用Android类方法
Unity调用Android类方法 1. 添加Unity的classes.jar文件 创建一个Android工程AndroidUnityDemo. 由于Unity的版本不同,直接在Unity安装包文 ...
- 百度编辑器ueditor插入表格没有边框,没有颜色的解决方法 2015-01-06 09:24 98人阅读 评论(0) 收藏
百度富文本编辑器..很强大.. - - ,不过有些BUG..真的很无解.. 最近用这个,发现上传的表格全部没有表框.. 解决办法如下: 转载的.. 百度编辑器ueditor插入一个表格后,在编辑过程中 ...
- springMVC学习笔记(一)-----springMVC原理
一.什么是springmvc springMVC是spring框架的一个模块,springMVC和spring无需通过中间整合层进行开发. springMVC是一个基于mvc的web框架. Sprin ...
- 让你的web程序“动”起来。
看到这里你可能会问,asp.net程序本身就是动态网站,还要如何动? 我这里所谓的动起来,是指动态加载,动态更新.好吧可能你又要问了动态网站本来就是动态加载,动态更新的.asp.net的程序依附于II ...
- 基于python的七种经典排序算法
参考书目:<大话数据结构> 一.排序的基本概念和分类 所谓排序,就是使一串记录,按照其中的某个或某些关键字的大小,递增或递减的排列起来的操作.排序算法,就是如何使得记录按照要求排列的方法. ...
- MVC中路由
篇目 介绍 路线的性质 了解缺省路由 用一个例子的路由 结论 介绍 本文介绍了MVC中的路由.如何执行的路线是由路由引擎和如何定义的URL路由. ASP.NET MVC的路由是一个模式匹配系统,负责传 ...