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, ...
随机推荐
- 用scikit-learn和pandas学习线性回归
对于想深入了解线性回归的童鞋,这里给出一个完整的例子,详细学完这个例子,对用scikit-learn来运行线性回归,评估模型不会有什么问题了. 1. 获取数据,定义问题 没有数据,当然没法研究机器学习 ...
- iOS开发之多图片无缝滚动组件封装与使用
经常有园友会问"博主,有没有图片无限滚动的Demo呀?", 正儿八经的图片滚动的Demo我这儿还真没有,今天呢就封装一个可以在项目中直接使用的图片轮播.没看过其他iOS图片无限轮播 ...
- objective-c中的@selector()和 c /c++的函数指针
先看tomcat里用到的代码: //然后开始动画 //把图片放到animationImages,接受数组参数 self.tom.animationImages = arrayImage; //设置时间 ...
- C/C++:提升_指针的指针和指针的引用
C/C++:提升_指针的指针和指针的引用 写在前面 今天在使用指针的时候我发现了一个自己的错误.
- MongoDB的CRUD操作
1. 前言 在上一篇文章中,我们介绍了MongoDB.现在,我们来看下如何在MongoDB中进行常规的CRUD操作.毕竟,作为一个存储系统,它的基本功能就是对数据进行增删改查操作. MongoDB中的 ...
- 探秘Tomcat——连接篇
前两篇我们分别粗线条和细粒度的讲解了tomcat的服务是如何启动以及连接器Connector和容器Container又分别是如何被启动的. 本篇我们主要侧重tomcat中server.service以 ...
- 简析GeoServer服务的内部文件组织以及GeoServer自动化服务发布工具的开发思路
文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 通过GeoServer发布的服务,在GeoServer内部有 ...
- gradle中使用嵌入式(embedded) tomcat, debug 启动
在gradle项目中使用embedded tomcat. 最开始部署项目需要手动将web项目打成war包,然后手动上传到tomcat的webapp下,然后启动tomcat来部署项目.这种手动工作通常还 ...
- SQL Server 数据库分离与附加
一.概述 SQL Server提供了“分离/附加”数据库.“备份/还原”数据库.复制数据库等多种数据库的备份和恢复方法.这里介绍一种学习中常用的“分离/附加”方法,类似于大家熟悉的“文件拷贝”方法,即 ...
- 背水一战 Windows 10 (12) - 绘图: Shape, Path
[源码下载] 背水一战 Windows 10 (12) - 绘图: Shape, Path 作者:webabcd 介绍背水一战 Windows 10 之 绘图 Shape - 图形 Path - 路径 ...