• 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服务器。)

    既然服务器已经运行,请用你的浏览器访问

    http://127.0.0.1:8000/

    在淡蓝色背景下,你将看到一个“Welcome to Django”的页面。 它运行成功了!
    runserver的自动重载
    开发服务器会根据需要自动重新载入Python代码。 你不必为了使更改的代码生效而重启服务器。 然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。

    至此在我们已经在机器上已经搭建了一个Django的Web开发环境,我机器上的情况是Python2.7+Django1.10.3+MySQL5.6.34

  • 相关阅读:
    web服务器-Apache
    nginx优化
    nginx下载限速
    nginx-URL重写
    HDU 5358 First One 求和(序列求和,优化)
    HDU 5360 Hiking 登山 (优先队列,排序)
    HDU 5353 Average 糖果分配(模拟,图)
    UVALive 4128 Steam Roller 蒸汽式压路机(最短路,变形) WA中。。。。。
    HDU 5348 MZL's endless loop 给边定向(欧拉回路,最大流)
    HDU 5344 MZL's xor (水题)
  • 原文地址:https://www.cnblogs.com/cdzhao/p/6132963.html
Copyright © 2020-2023  润新知