Django 博客教程:建立django工程(连载二)

專 欄

追梦人物,电子科技大学计算机学院研究生,从事大数据分析研究方向。主要使用 Python 语言进行相关数据的分析,熟练使用 django 开发网站系统。Django开源论坛作者

博客地址:http://www.jianshu.com/u/f0c09f959299

建立 django 工程

万事已经具备了,让我们来建立我们的 django 工程。 django 工程(project)是我们项目代码的容器。例如我们博客项目中所有的代码(包括 django 为我们自动生成的以及我们自己写的)都包含在这个工程里,说白了就是用一个文件夹包起来的一系列 Python 代码文件和 django 配置文件。但我们不必去亲自动手新建这个文件夹和代码文件,django 的命令帮我们做了这些事情。例如我把博客项目工程的代码放在 C:\Users\yangxg\Workspace ,工程名我把它叫做 blogproject ,那么首先在命令行工具进入 C:\Users\yangxg\Workspace 这个目录(如果你还停留在 Python 的命令栏里,先多按几次 ctrl + c 跳出来):

(blogproject_env) C:\WINDOWS\system32>cd C:\Users\yangxg\Workspace

然后运行如下命令:

(blogproject_env) C:\Users\yangxg\Workspace>django-admin startproject blogproject

再次申明一定要在虚拟环境下运行这些命令,虚拟环境的标志就是命令提示符前有 (blogproject_env) 这样的标记。以后所有的和 django 有关的命令都是在虚拟环境下运行,因此在运行前一定确保先开启了虚拟环境。

进入工程所在目录 C:\Users\yangxg\Workspace(你可能设置在其他路径),你会发现多了一个名为 blogproject 的文件夹,其内部文件结构如下:

blogproject /

    manage.py

    blogproject /

        __init__.py

        settings.py

        urls.py

        wsgi.py

最顶层的 blogproject/ 目录是我们刚刚指定的工程目录,其下面有一个 manage.py 文件,manage 是管理的意思,顾名思义 manage.py 就是 django 为我们生成的管理我们这个项目的 Python 脚本文件,以后用到时会再次介绍。与 manage.py 同级的还有一个名为 blogproject 的文件夹,这里面存放了一些 django 的配置文件,例如 settings.py 等等,以后用到时会详细介绍。此外,其下面的 __init__.py 指明了这是一个 Python 模块包。Python 规定在一个文件夹里包含 __init__.py 文件来指明这是一个 Python 模块包,这样你就可以在别的 Python 代码中引入它。

Hello django

网站需要运行在一个 web 服务器上,django 已经为我们提供了一个用于本地开发的 web 服务器。在命令行工具里进入到 manage.py 所在目录,运行下面的命令就可以在本机上开启一个 web 服务器:

(blogproject_env) C:\Users\yangxg\Workspace>cd C:\Users\yangxg\Workspace\blogproject



(blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py runserver

Performing system checks...



System check identified no issues (0 silenced).



You have 13 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.

Run 'python manage.py migrate' to apply them.

December 21, 2016 - 20:23:07

Django version 1.10.4, using settings 'blogproject.settings'

Starting development server at http://127.0.0.1:8000/

Quit the server with CTRL-BREAK.

看到这样的信息表明我们的服务器开启成功,在浏览器输入http://127.0.0.1:8000/ ,看到如下的页面提示信息:

> # It worked!

>

> ## Congratulations on your first Django-powered page.

>

> Of course, you haven't actually done any work yet. Next, start your first app by running `python manage.py startapp [app_label]`.

>

> You're seeing this message because you have `DEBUG = True` in your Django settings file and you haven't configured any URLs. Get to work!

It worked!  django 工作了!一切准备就绪,开始进入我们的 django 博客开发之旅了!

注:这是 manage.py 的第一个用法,运行它的 runserver 命令开启本地开发服务器,以后还会遇到更多的命令。

命令栏工具下按 Ctrl + c 可以退出开发服务器(按一次没用的话连续多按几次)。重新开启则再次运行 `python manage.py runserver`

另外我们 django 默认的语言是英语,所以显示给我们的欢迎页面是英文的。我们在 django 的配置文件里稍作修改,让它支持中文。用任何一个文本编辑器打开 settings.py 文件,找到如下的两行代码:


```python

blogproject/blogproject/settings.py

<div class="md-section-divider"></div>

## 其它配置代码...


LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

<div class="md-section-divider"></div>


## 其它配置代码...


<div class="md-section-divider"></div>

LANGUAGE_CODE 改为 zh-hansTIME_ZONE 改为Asia/Shanghai

blogproject/blogproject/settings.py

<div class="md-section-divider"></div>

# 其它配置代码


LANGUAGE_CODE = 'zh-hans' # 把英文改为中文

TIME_ZONE = 'Asia/Shanghai' # 把国际时区改为中国时区 



<div class="md-section-divider"></div>

# 其它配置代码

<div class="md-section-divider"></div>

再次运行开发服务器,并在浏览器打开 http://127.0.0.1:8000/,可以看到 django 已经支持中文了。

(blogproject_env) C:\Users\yangxg\Workspace\blogproject>python manage.py runserver

Performing system checks...

<div class="md-section-divider"></div>

> # 正常工作了!

>

> ## 祝贺你的第一个由Django驱动的页面。

>

> 当然,您还没有真正开始工作。接下来,请执行 `python manage.py startapp [app_label]` 来创建您的第一个应用。

>

> 您看到此消息是由于Django的配置文件设置了 `DEBUG = True`,您还没有配置任何路由URL。开始

版权声明

本作品采用知识共享署名-非商业性使用-禁止演绎 3.0 中国大陆许可协议进行许可。

原文发布于微信公众号 - Python中文社区(python-china)

原文发表时间:2017-04-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏用户2442861的专栏

make makefile cmake qmake都是什么,有什么区别?

作者:玟清 链接:https://www.zhihu.com/question/27455963/answer/36722992 来源:知乎 著作权归作者...

12810
来自专栏FreeBuf

有工具了,如何快速发现Windows中毒(含工具下载)

本文是之前《没有外部工具,如何快速发现Windows中毒了》的姊妹篇,探讨Windows电脑感染多种典型病毒后,在没有专业杀毒软件情况下的快速检测方法。 Pro...

22790
来自专栏Java架构师学习

阿里首席架构师科普RPC框架

RPC概念及分类 RPC全称为Remote Procedure Call,翻译过来为“远程过程调用”。目前,主流的平台中都支持各种远程调用技术,以满足分布式系...

25820
来自专栏架构师小秘圈

微服务架构实施原理

31130
来自专栏腾讯Bugly的专栏

快速定位crash的炫酷方式

本人所在项目组主要负责一款Android平台产品的开发,因为用户量比较大,正式版本发布后,每天Crash次数的上报量都在几十万量级,即便是内测版,每天Crash...

387120
来自专栏程序猿DD

都在说微服务,那么微服务的反模式和陷阱是什么(三)

前文导读: 《都在说微服务,那么微服务的反模式和陷阱是什么(一)》 《都在说微服务,那么微服务的反模式和陷阱是什么(二)》 九、通信协议使用的陷阱 在微服务架构...

19750
来自专栏企鹅号快讯

MITM6:用IPv6攻陷IPv4网络的工具

随着IPv6概念的提出,互联网上针对IPv6协议的使用也日渐增多,但即便如此IPv6在公司内部却并不受欢迎,很少会有公司使用IPv6。然而,大多数公司可能都忽略...

40470
来自专栏EAWorld

微服务之服务调用与安全控制

近年来,大多数企业IT软件均在向微服务架构转型,由于微服务架构采用了更细粒度的分布式拆分,对于服务调用安全方面的问题更复杂,更需要重视,需要整体的系统化解决方案...

19730
来自专栏散尽浮华

Linux系统是否被植入木马的排查流程梳理

在日常繁琐的运维工作中,对linux服务器进行安全检查是一个非常重要的环节。今天,分享一下如何检查linux系统是否遭受了入侵? 一、是否入侵检查 1)检查系统...

79680
来自专栏FreeBuf

挖洞经验 | 看我如何综合利用4个漏洞实现GitHub Enterprise 远程代码执行

大家好,距离上次漏洞披露已有半年之余,在这篇文章中,我将向大家展示如何通过4个漏洞完美实现GitHub Enterprise的RCE执行,该RCE实现方法与服务...

46660

扫码关注云+社区

领取腾讯云代金券