创建一个项目

如果这是你第一次使用Django,你需要完成一些初始化操作。 即,你需要自己用代码来创建一个Django项目 ——一个Django实例所需的设置集合,包括数据库的配置、Django的配置选项和应用的配置选项。

在命令行(终端)中,cd(例如cd exam)到你想要用来保存代码的目录,然后运行如下命令:

$ django-admin startproject mysite

这将会在你的当前目录下生成一个 mysite目录。如果它不能正常工作,请查看运行django-admin遇到的问题

注意

你给项目命名时要避免与Python或Django的内建组件同名。 特别地,你应该避免使用类似django(与Django自身冲突)或test(与Python内建的包冲突)这样的名称。

代码应该存在哪里?

如果你的背景是普通的旧式的PHP(没有使用过现代的框架),你可能习惯于将代码放在Web服务器的文档根目录下(例如/var/www)。使用Django,你不需要这么做。 将Python代码放在你的Web服务器的根目录不是个好主意,因为它可能会产生让人们在网上看到你的代码的风险。 这样不安全。

将你的代码放置在Web服务器根目录以外的地方,例如/home/mycode

让我们看一下startproject生成了什么:

mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py

这些文件是:

  • 外层的mysite/根目录仅仅是项目的一个容器。它的命名对Django无关紧要;你可以把它重新命名为任何你喜欢的名字。
  • manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互。 你可以在django-admin和manage.py中读到关于manage.py的所有细节。
  • 内层的mysite/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如mysite.urls)。
  • mysite/__init__.py:一个空文件,它告诉Python这个目录应该被看做一个Python包。 (如果你是一个Python初学者,关于包的更多内容请阅读Python的官方文档)。
  • mysite/settings.py:该Django 项目的设置/配置。Django 设置 将告诉你这些设置如何工作。
  • mysite/urls.py:该Django项目的URL声明;你的Django站点的“目录”。 你可以在URL 路由器 中阅读到关于URL的更多内容。
  • mysite/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口。 更多细节请参见如何利用WSGI进行部署

数据库的建立

现在,编辑mysite/settings.py。它是一个普通的Python模块,带有模块级别的变量,用来表示Django的配置。

默认情况下,该配置使用SQLite。如果你是数据库初学者,或者你仅仅是想要试用一下Django,它是最简单的选择。 SQLite包含在Python中,所以你不需要另外安装其他任何东西来支持你的数据库。 然而,当你开始第一个真正的项目时,你可能想使用一个更健壮的数据库比如PostgreSQL来避免在未来遇到令人头疼的数据库切换问题。

如果你希望使用另外一种数据库,请安装合适的database binding,并在 DATABASES 'default'条目中修改以下的配置以匹配你的数据库连接的设置:

  • ENGINE – 'django.db.backends.sqlite3''django.db.backends.postgresql_psycopg2','django.db.backends.mysql''django.db.backends.oracle'。其它的后台也可以支持
  • NAME –  数据库的名称。如果你使用SQLite,数据库将是你计算机上的一个文件; 如果是这样的话,NAME应该是这个文件的绝对路径,包括文件名。默认值是os.path.join(BASE_DIR, 'db.sqlite3'),它将文件保存在你项目的目录中。

当你的项目使用SQLite之外的其他数据库引擎时,就必须添加USER、 PASSWORDHOST等额外的设置。 更多的细节,请参见DATABASES的参考文档。

如果你使用PostgreSQL或者MySQL,确保到此你已经建立好一个数据库。 可以在你的数据库的交互式提示命令下,使用“CREATEDATABASE database_name;”创建它。

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

当你编辑mysite/settings.py时,请设置TIME_ZONE为你自己的时区。

另外,请注意文件顶端的INSTALLED_APPS设置。它保存这个Django实例中激活的所有的Django应用的名字。 应用可以使用在多个项目中,而且你可以将这些应用打包和分发给其他人在他们的项目中使用。

默认情况下,INSTALLED_APPS包含下面的应用,它们都是Django 与生俱来的:

这些应用,默认包含在Django中,以方便通用场合下使用。

然而上面的部分应用至少需要使用一个数据库表,因此我们需要在使用它们之前先在数据库中创建相应的表。要做到这一点,请运行以下命令:

$ python manage.py migrate

migrate查看INSTALLED_APPS设置并根据mysite/settings.py文件中的数据库设置创建任何必要的数据库表,数据库的迁移还会跟踪应用的变化(我们稍后会讲到)。你会看到对每次迁移有一条信息。如果你有兴趣,可以运行你的数据库的命令行客户端并输入dt (PostgreSQL), SHOW TABLES; (MySQL)或.schema (SQLite)来显示Django创建的表。

极简主义者

就像我们上面说到的,以上包含的默认应用用于常见的场景,但并不是每个人都需要它们。 如果你不需要它们中的任何一个或所有应用,可以在运行migrate之前从INSTALLED_APPS中自由地注释或删除相应的行。migrate 命令将只为INSTALLED_APPS中的应用运行数据库的迁移。

开发服务器

让我们验证一下你的Django项目是否工作。 如果你没在外层的mysite目录下,那么进入这个目录,然后运行以下命令:

$ python manage.py runserver

你将看到命令行下输出了以下内容:

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命令在内部IP的8000端口启动开发服务器。

如果你想改变服务器的端口,把要使用的端口作为一个命令行参数传递给它。 例如,这个命令在8080端口启动服务器:

$ python manage.py runserver 8080

如果你想改变服务器的IP地址,把IP地址和端口号放到一起。 因此若要监听所有的外网IP,请使用(如果你想在另外一台电脑上展示你的工作,会非常有用):

$ python manage.py runserver 0.0.0.0:8000

开发服务器的所有文档可以在runserver的参考手册中找到。

runserver的自动重载

开发服务器会根据需要自动重新载入Python代码。 你不必为了使更改的代码生效而重启服务器。 然而,一些行为比如添加文件,不会触发服务器的重启,所以在这种情况下你需要手动重启服务器。

Django的开发服务的搭建和使用的更多相关文章

  1. django 1.开发接口环境搭建

    首先需要的环境: pycharm Python 3.6.0 django 2.1.3        安装命令: pip3 install django   查看版本号和安装的路径: pip show ...

  2. [置顶] Django 微信开发(一)——环境搭建

    Django 微信开发(一)——环境搭建 随着移动互联网时代的到来,微信——一个改变着我们生活的产品悄悄走近了我们的生活.我们不得不觉得自己很幸运,自己能在这个世界上遇到像QQ.微博.微信这样优秀的产 ...

  3. pycharm+python+Django之web开发环境的搭建(windows)

    转载:https://blog.csdn.net/yjx2323999451/article/details/53200243/ pycharm+python+Django之web开发环境的搭建(wi ...

  4. Windows下搭建Apache+Django+Python Web服务环境

    最近在学Django,想用Apache搭建一个服务器环境,因此在网上看了好多资料,很多都是用Python2.6和Apache2.2搭建的环境,不过我还是想用Python35和Apache24来搭建,具 ...

  5. windows上JSP开发环境全搭建

    JSP开发环境全搭建 最近需要用到JSP做项目,所以要配置JSP的开发环境,总结一下配置步骤以备以后再配置需要. 配置JAVA开发环境,配置JDK 下载JDK,在这里下载开发所需的JDK,可以根据自己 ...

  6. 基于SpringMVC下的Rest服务框架搭建【1、集成Swagger】

    基于SpringMVC下的Rest服务框架搭建[1.集成Swagger] 1.需求背景 SpringMVC本身就可以开发出基于rest风格的服务,通过简单的配置,即可快速开发出一个可供客户端调用的re ...

  7. android笔记1——开发环境的搭建

    Long Long ago...已经成为了历史,我还是要说出一个真相:早年前,那时候,android还不被大众所认知的时候,当然开发人员也没不像如今那样趋于饱和状态.一位大牛前辈,也是我的学长,那时候 ...

  8. Python开发环境的搭建(win7)

    一个.安装和配置Python 事实上,在开发python最好ubuntu环境.简单和易于扩展每个package. 在谈到如何win7建筑物Python开发环境. 因为python十字-platform ...

  9. Java Web 开发环境快速搭建

    Java Web 开发环境快速搭建 在因某种原因更换开发设备后,可依据此文快速搭建开发环境,恢复工作环境. Java开发环境: Windows 10 (64-bit) Oralce JDK Eclip ...

随机推荐

  1. Go语言备忘录(1):基本数据结构

    本文内容是本人对Go语言的变量.常量.数组.切片.映射.结构体的备忘录,记录了关键的相关知识点,以供翻查. 文中如有错误的地方请大家指出,以免误导!转摘本文也请注明出处:Go语言备忘录(1):基本数据 ...

  2. log4j记录日志 和 webAppRootKey关系

    今天发现一个问题,就是后台从某天开始不再记录日志了,最后发现是 webAppRootKey 的 value 的值必须要和log4j的注入变量要一致. 如下:web.xml文件的 webAppRootK ...

  3. JAVA常用单词

    柠檬学院Java 基础常见英语词汇(共 70 个)OO: object-oriented ,面向对象 OOP: object-oriented programming,面向对象编程JDK:Java d ...

  4. 在JSP中将EXEL文件的数据传入到数据库中

    在jsp中: 在script中使用函数: $(function(){ //var lpyear = document.getElementById("lpyear").value; ...

  5. 记录开发Nodejs c++ addon的一些经验(一、技术栈)

    Nodejs c++ addon 是用c++去编写Nodejs的插件 技术栈: 1.node-gyp 一个用于把c++文件编译成node可执行文件的库 2.v8 google v8引擎 用于处理c++ ...

  6. mac下配置环境变量-mongo

    一 1打开终端查看echo $PATH所有环境变量会显示2输入sudo vi ~/.bash_profile回车后输入密码,然后到达vim查看状态3输入i改为编辑态,在后面追加路径4按esc然后shi ...

  7. js实现数组内数据的上移和下移

    var swapItems = function(arr, index1, index2){ arr[index1] = arr.splice(index2,1,arr[index1])[0] ret ...

  8. Vue.js基础2

    声明式渲染 Vue.js 的核心是一个允许采用简洁的模板语法来声明式的将数据渲染进 DOM: <div id="app"> {{ message }} </div ...

  9. MySQL数据库(1)----入门级操作

    1.在服务器主机上以 root 用户登陆,创建位于其他客户端的新用户: mysql> CREATE USER 'newuser'@'192.168.1.109' IDENTIFIED BY 'p ...

  10. UFW Essentials: Common Firewall Rules and Commands

    Introduction UFW is a firewall configuration tool for iptables that is included with Ubuntu by defau ...