Django学习一

前言: 最近 python 语言在编程界的受欢迎力度不减,长期稳居编程语言前 5 。而 python 在欧美国家,是拿来作为入门级编程语言。python 不仅可以用来编写传统 WEB 开发,GUI 应用开发,也可以用到现在主流的数据分析,以及人工智能方向,可谓是一个多功能型的语言。而本次学习,主要是以 Web 开发为主。

打好学习 pyhton 的基础,为以后的机器学习做准备。

Python 之 Django

python web 的开发框架现在越来越多,并且也都趋于成熟。现在主流的 python web 开发框架包含有 Django, Flask , Pyramid , Tornado 等。具体前 3 种框架的区别可以看这里

本篇主要是以 Django 为学习。

  • Django 框架是什么?

    Django is a high-level Python Web framework that encourages rapid development and clean, pragmatic design. Built by experienced developers, it takes care of much of the hassle of Web development, so you can focus on writing your app without needing to reinvent the wheel. It’s free and open source.(来自 Django 官网)

  • 学习中用到的工具

    本人是在 Windows 10 版本上进行的开发,在这里推荐同学们使用 MAC 或者 Linux 进行开发,因为在后 2 个平台上面已经自动集成 python 的开发环境。这里主要介绍如何在 Windows 上进行有一个比较舒适的 python 开发姿势。

    • 工具:Viual Studio Code,优点我不累赘了,google 一下很多关于该工具的有点,使用起来也是美滋滋,相对于之前我使用过的 Sublime 3 ,个人推荐这款工具作为 python 开发(个人觉得 Sublime 的使用对于新手比较不那么友好)。

    • 环境:python 安装,这里也是 Google 一下,很多教程,基本大同小异,这里本人用的是 python 3.5.4 64 bit 版本。(廖雪峰的 Python 安装教程

    • git 环境安装,因为后续的 Django 一些环境部署,包括 python 中一些类库的按照都需要用到 windows 指令,当然 vs code 工具中也自带有终端,不想按照可以略过。(廖雪峰的 Git 安装教程)

    • vs code 扩展插件按照:vs code的还有一个点好处就 是安装插件相当方便,并且配置相对于其他开发工具来说比较简单。点击左侧的扩展图标,进入到扩展程序。如下图:

      扩展界面

      进入之后直接在搜索栏输入要安装的程序名称,就可以直接安装,下面我记录下本人所用到的扩展程序。

      • 1 Auto Close Tag
      • 2 Auto Rename Tag
      • 3 Beautify
      • 4 Bootstrap 3 Snippets
      • 5 Class autocomplete for HTML
      • 6 Dash
      • 7 Debugger for Chrome
      • 8 Debugger for Firefox
      • 9 Django Template
      • 10 ESLint
      • 11 Git History
      • 12 HTML CSS Support
      • 13 HTML Snippets
      • 14 JavaScript SnipperPack
      • 15 JQuery Code Snippets
      • 16 JS-CSS-HTML Formatter
      • 17 Language Support for Java
      • 18 Mithril Emmet
      • 19 Path Intellisense
      • 20 Python
      • 21 Python for VSCode
      • 22 React Native Tools
      • 23 Ractjs code snippets
      • 24 Typings auto installer
      • 25 vscode-flake8
      • 26 vscode-icons

      这里就是我 vscode 中所有的扩展程序,这里我就不一一描述每个扩展程序的作用了,其中很多是关于代码规范,以及代码提示高亮准备的,为开发提供了便捷。因为整个 DJango 开发中涉及的内容很多,包含了数据库,python , html-css-js , MVC 开发模式等各种内容。后续有需要的话,会另写一篇关于 vscode 的文章,再详细介绍这些扩展程序的作用。

      注意:其中部分扩展程序是需要在 vscode 的设置用进行文件部署设置的。

      点击 文件 -> 首选项 -> 设置,到用户设置界面,在右侧可以进行覆盖设置,这些设置可以覆盖到原有的设置部分, 其中 “typescript.tsdk” 这一项可以略过,这是我在 React Ntive设置中进行的配置,其他都配置上。基本到这里,你的 vscode 就已经配置的差不多了。如下图:

      用户设置

Django 的简单创建以及使用

VS Code提供了两种范围的设置,分别是User及Workspace. 用户级别的设置可以理解为全局设置,其中的设置对任一vscode实例都生效。工作区级别的设置则仅针对当前项目生效,配置文件存放在项目的 .vscode 文件夹中。一般在项目开发中我们使用工作区级别的设置。以下步骤记录了如何建立Django项目的基本目录结构。

  1. 首先创建一个空的文件夹,作为一个工作空间使用,例如 :D:\python\django_project,进入该文件夹,并且右击空白选择 git bash 进入到终端(没安装 Git 的同学可以用自带的终端自行切换到该目录)。

  2. 在该终端输入 virtualenv env 创建 env 文件夹

  3. 在该目录下在创建一个 requirenments.txt 文件,文件中添加以下内容,pylint为python的静态语法检测器,pylint-django 是适用于 django 项目的语法检查其插件,autopep8 是代码格式化工具

    1
    2
    3
    4
    django<1.10
    pylint
    pylint-django
    autopep8
  4. 双击 \env\Scripts\activate.bat 激活虚拟环境

  5. 在 git bash 中执行 pip install -r requirenments.txt 安装相关模块

  6. 再执行 django-admin startproject mysitedemo ,在当前目录下创建一个 django 项目文件夹

  7. 进入 mysitedemo 目录,再执行 python manage.py startapp mysite 来新建一个 django app。

  8. 在 Vs Code 中选择打开文件夹方式打开该文件 django_project

  9. 在 Vs Code 中按下 Ctrl + Shift + P ,输入 Python ,然后选择 Python: Select Workspace Interpreter,在弹出框中选择 env 下的 python 。如图:

    选择图

  10. 在 Vs Code 中按下 Ctrl + Shift + P,输入 workspace,选择Preferences: Open Workspace Settings,配置如下的 JSON文件。

    配置

    1
    2
    3
    4
    5
    6
    7
    8
    {
    "python.pythonPath": "d:/python/django_project/env/scripts/python.exe",
    "python.linting.pylintPath": "pylint",
    "python.linting.pylintArgs": [
    "--load-plugins", "pylint_django"
    ],
    "python.formatting.autopep8Path": "autopep8"
    }

    配置完成后,我们就可以继续项目开发了。

Django的简单使用

首先我们看下项目目录结构的具体情况

项目结构

熟悉下目录结构:

  • 最外层的 mysitedemo 也就是我们手动创建的文件夹,它在这里仅仅是项目的容器,它的命名对整个项目 都无关紧要,可以随便改。
  • mysitedemo/manage.py,这是一个命令工具,可以使你用多种方式对 Django 项目进行交互。包括之前我们用来的命令 startapp 来创建的 mysite.
  • mysitedemo/mysitedemo目录是项目中真正的 Python 包
  • mysitedemo/init.py,这是一个空文件,它的目的就是告诉 Python 这个目录应该被看做一个 Python 包。
  • mysitedemo/settings.py,该文件为 Django 项目的配置文件
  • mysietedemo/urls.py,该文件为 Django 的 URL 声明
  • mysitedemo/wsgi.py,用于你的项目的与WSGI兼容的Web服务器入口
  • mysitedemo/mysite,该文件夹为创建的新文件夹,用来做具体的项目

数据库的建立

Django 默认使用 SQLite。当然 Django 对其他数据库也是支持的。通常使用数据库需要在 mysitedemo/setting.py 中进行配置,使用默认数据库比较简单明了,如果使用其他远程数据库或者已经创建好的本地数据库文件,比如 MySQL,就需要在配置文件中进行详细的配置,添加User,password,hoset等额外的配置。

这里我们优先选用默认的 SQLite,方便使用和学习。

打开 setting.py 文件,找到 DATABASES ,在 ‘default’ 条目中可以看到以下的配置

1
2
3
4
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}

当使用 SQLite,你不需要事先创建任何东西,数据库文件将会在需要的时候自动创建。

这里我们暂时需要一个数据库表,直接运行以下命令:

1
python manage.py migrate

这时,项目目录中会直接出现一个数据库表 db.sqlite3

本次学习总结

本次主要介绍了 Django以及一些插件,和简单的DJango 项目部署,在下一节,将会采取实际项目来针对学习,根据具体需求来进行学习。

写的不好的地方,请大家积极反应。