开始着手第一个Django项目


Posted in Python onJuly 15, 2015

一但你安装好了python,django和(可选的)数据库及相关库,你就可以通过创建一个project,迈出开发django应用的第一步。

项目 是 Django 实例的一系列设置的集合,它包括数据库配置、Django 特定选项以及应用程序的特定设置。

如果第一次使用 Django,必须进行一些初始化设置工作。 新建一个工作目录,例如 /home/username/djcode/ ,然后进入该目录。

这个目录应该放哪儿?

有过 PHP 编程背景的话,你可能习惯于将代码都放在 Web 服务器的文档根目录 (例如 /var/www 这样的地方)。 而在 Django 中,把任何Python代码和web server的文档根(root)放在一起并不是一个好主意。因为这样做有使人能通过网路看到你原代码的风险. 那就太糟了。

把代码放置在文档根目录 之外 的某些目录中。

转到你创建的目录,运行命令django-admin.py startproject mysite。这样会在你的当前目录下创建一个目录。mysite

注意

如果用的是 setup.py 工具安装的 Django , django-admin.py 应该已被加入了系统路径中。

如果你使用一个trunk版本,你会在 djtrunk/django/bin 下发现 django-admin.py 。你将来会常用到django-admin.py,考虑把它加到你的系统路径中去比较好。 在Unix中, 你也可以用来自/usr/local/bin 的符号连接, 用一个命令, 诸如

sudo ln -s /path/to/django/bin/django-admin.py /usr/local/bin/django-admin.py

. 在Windows中, 你需要修改你的 PATH 环境变量.

如果你的django是从linux发行版中安装的,那么,常会被django-admin.py替代。django-admin

如果在运行时,你看到权限拒绝的提示,你应当修改这个文件的权限。django-admin.py startproject 为此, 键入 cd /usr/local/bin转到django-admin.py所在的目录,运行命令chmod +x django-admin.py

startproject 命令创建一个目录,包含4个文件:

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

文件如下:

  •     __init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它。
  •     manage.py :一种命令行工具,允许你以多种方式与该 Django 项目进行交互。 键入python manage.py help,看一下它能做什么。 你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。
  •     settings.py :该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值。
  •     urls.py:Django项目的URL设置。 可视其为你的django网站的目录。 目前,它是空的。

尽管这些的文件很小,但这些文件已经构成了一个可运行的Django应用。
运行开发服务器

为了安装后更多的体验,让我们运行一下django开发服务器看看我们的准系统。

django开发服务是可用在开发期间的,一个内建的,轻量的web服务。 我们提供这个服务器是为了让你快速开发站点,也就是说在准备发布产品之前,无需进行产品级 Web 服务器(比如 Apache)的配置工作。 开发服务器监测你的代码并自动加载它,这样你会很容易修改代码而不用重启动服务。

如果你还没启动服务器的话,请切换到你的项目目录里 (cd mysite ),运行下面的命令:

python manage.py runserver

你会看到些像这样的

Validating models...
0 errors found.

Django version 1.0, using settings 'mysite.settings'
Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

这将会在端口8000启动一个本地服务器, 并且只能从你的这台电脑连接和访问。 既然服务器已经运行起来了,现在用网页浏览器访问 http://127.0.0.1:8000/ 。 你应该可以看到一个令人赏心悦目的淡蓝色Django欢迎页面。 它开始工作了。

在进一步学习之前, 一个重要的,关于开发网络服务器的提示很值得一说。 虽然 django 自带的这个 web 服务器对于开发很方便,但是,千万不要在正式的应用布署环境中使用它。 在同一时间,该服务器只能可靠地处理一次单个请求,并且没有进行任何类型的安全审计。 发布站点前,请参阅第 20 章了解如何部署 Django 。

更改这个 Development Server 的主机地址或端口

默认情况下, runserver 命令在 8000 端口启动开发服务器,且仅监听本地连接。 要想要更改服务器端口的话,可将端口作为命令行参数传入:

python manage.py runserver 8080

通过指定一个 IP 地址,你可以告诉服务器?允许非本地连接访问。 如果你想和其他开发人员共享同一开发站点的话,该功能特别有用。 `` 0.0.0.0`` 这个 IP 地址,告诉服务器去侦听任意的网络接口。

python manage.py runserver 0.0.0.0:8000

完成这些设置后,你本地网络中的其它计算机就可以在浏览器中访问你的 IP 地址了。比如: http://192.168.1.103:8000/ . (注意,你将需要校阅一下你的网络配置来决定你在本地网络中的IP 地址) Unix用户可以在命令提示符中输入ifconfig来获取以上信息。 使用Windows的用户,请尝试使用 ipconfig 命令。

Python 相关文章推荐
以Flask为例讲解Python的框架的使用方法
Apr 29 Python
利用matplotlib+numpy绘制多种绘图的方法实例
May 03 Python
Django中STATIC_ROOT和STATIC_URL及STATICFILES_DIRS浅析
May 08 Python
python实现对求解最长回文子串的动态规划算法
Jun 02 Python
对Python通过pypyodbc访问Access数据库的方法详解
Oct 27 Python
Python 异常处理Ⅳ过程图解
Oct 18 Python
Python操作Excel把数据分给sheet
May 20 Python
Django ORM判断查询结果是否为空,判断django中的orm为空实例
Jul 09 Python
python 基于卡方值分箱算法的实现示例
Jul 17 Python
pycharm 使用tab跳出正在编辑的括号(){}{}等问题
Feb 26 Python
Python中super().__init__()测试以及理解
Dec 06 Python
Python尝试实现蒙特卡罗模拟期权定价
Apr 21 Python
Python的Django框架可适配的各种数据库介绍
Jul 15 #Python
Python的Django框架安装全攻略
Jul 15 #Python
python实现爬虫下载美女图片
Jul 14 #Python
Python实现查找系统盘中需要找的字符
Jul 14 #Python
Python删除空文件和空文件夹的方法
Jul 14 #Python
Python实现批量将word转html并将html内容发布至网站的方法
Jul 14 #Python
Python删除windows垃圾文件的方法
Jul 14 #Python
You might like
PHP的cURL库功能简介 抓取网页、POST数据及其他
2011/04/07 PHP
php中url传递中文字符,特殊危险字符的解决方法
2013/08/17 PHP
yii框架builder、update、delete使用方法
2014/04/30 PHP
php 判断网页是否是utf8编码的方法
2014/06/06 PHP
服务器上配置PHP运行环境教程
2015/02/12 PHP
PHP接口并发测试的方法(推荐)
2016/12/15 PHP
TP5框架实现一次选择多张图片并预览的方法示例
2020/04/04 PHP
写了一个layout,拖动条连贯,内容区可为iframe
2007/08/19 Javascript
select组合框option的捕捉实例代码
2008/09/30 Javascript
仿迅雷焦点广告效果(JQuery版)
2008/11/19 Javascript
简洁Ajax函数处理(示例代码)
2013/11/15 Javascript
JQUERY 设置SELECT选中项代码
2014/02/07 Javascript
Javascript限制网页只能在微信内置浏览器中访问
2014/11/09 Javascript
JavaScript实现数组在指定位置插入若干元素的方法
2015/04/06 Javascript
jquery实现通用的内容渐显Tab选项卡效果
2015/09/07 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
关于bootstrap日期转化,bootstrap-editable的简单使用,bootstrap-fileinput的使用详解
2017/05/12 Javascript
Webpack执行命令参数详解
2017/06/17 Javascript
jQuery Easyui Treegrid实现显示checkbox功能
2017/08/08 jQuery
java和js实现的洗牌小程序
2019/09/30 Javascript
解决VUE双向绑定失效的问题
2019/10/29 Javascript
JavaScript设计模式之门面模式原理与实现方法分析
2020/03/09 Javascript
微信小程序实现左滑删除效果
2020/11/18 Javascript
python插入数据到列表的方法
2015/04/30 Python
python subprocess 杀掉全部派生的子进程方法
2017/01/16 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
Python django使用多进程连接mysql错误的解决方法
2018/10/08 Python
Django中使用Whoosh进行全文检索的方法
2019/03/31 Python
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
博朗(Braun)俄罗斯官方商店:德国小家电品牌
2019/09/24 全球购物
应聘美工求职信
2013/11/07 职场文书
八一建军节感言
2014/02/28 职场文书
10的分与合教学反思
2014/04/30 职场文书
2015年党总支工作总结
2015/05/25 职场文书
百年校庆感言
2015/08/01 职场文书
详解Python牛顿插值法
2021/05/11 Python