Django18初体验


937 浏览 5 years, 6 months

2.2 启动项目

版权声明: 转载请注明出处 http://www.codingsoho.com/

启动项目 Start Project

本章节主要会介绍如何搭建django开发一些常见的环境和功能。

virtualenv

virtualenv是python开发的一大利器,能够帮助我们隔离不同项目的环境和库。
具体会在环境搭建一文介绍, 下面是我在Window下的使用

D:>mkdir virtualdir
D:>cd virtualdir
D:>virtualenv trydjango18

New python executable in trydjango18\Scripts\python.exe
Installing setuptools, pip, wheel...done.

D:\virtualdir\trydjango18>ls

Include  Lib  Scripts

Windows下激活

D:\virtualdir\trydjango18>Scripts\activate

(trydjango18) D:\virtualdir\trydjango18>

Windows去激活

D:\virtualdir\trydjango18>Scripts\deactivate

安装Django

可以从django网站获取最新的django版本信息
https://www.djangoproject.com/download/
或者通过pip安装django

pip install django

像上面这样不带参数会安装最新的版本,如果要指定版本django 1.8可以用下面命令

pip install django==1.8

本项目指定版本安装:

(trydjango18) D:\virtualdir\trydjango18>pip install django==1.8

Collecting django==1.8
D:\virtualdir\trydjango18\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:315: SNIMissingWarning: An HTTPS request has been made, but the SNI (Subject Name Indication) extension to TLS is not available on this platform. This may cause the server to present an incorrect TLS certificate, which can cause validation failures. For more information, see [https://urllib3.readthedocs.org/en/latest/security.html](https://urllib3.readthedocs.org/en/latest/security.html)#snimissingwarning.
  SNIMissingWarning
D:\virtualdir\trydjango18\lib\site-packages\pip\_vendor\requests\packages\urllib3\util\ssl_.py:120: InsecurePlatformWarning: A true SSLContext object is not available. This prevents urllib3 from configuring SSL appropriately and may cause certain SSL connections to fail. For more information, see [https://urllib3.readthedocs.org/en/latest/security.html](https://urllib3.readthedocs.org/en/latest/security.html)#insecureplatformwarning.
  InsecurePlatformWarning
  Using cached Django-1.8-py2.py3-none-any.whl
Installing collected packages: django
Successfully installed django-1.8

如果碰到上面的警告,将python2版本升级到2.10以上,该版本以上会fix这个问题。

安装完成之后可以通过pip freeze查看当前的版本信息

(trydjango18) D:\virtualdir\trydjango18>pip freeze

Django==1.8
wheel==0.24.0

一般来说,我们可以通过命令pip freeze > requirements.txt将安装软件信息存储到requirements.txt
这样后面可以通过pip install –r requirements.txt直接安装全部软件

开始项目 Start Project

Django提供来django-admin.py简化project相关的工作。Unix下,它默认安装在/usr/bin,Win32下,它在python安装目录的Script目录下,例如c:\python27\Script
确保django-admin.py在你的系统环境Path里,这样你可以在命令行直接执行该命令。

(trydjango18) D:\virtualdir\trydjango18>django-admin.py startproject trydjango18
(trydjango18) D:\virtualdir\trydjango18>ls

Include  Lib  Scripts  pip-selfcheck.json  trydjango18

执行startproject命令后,会生成下列文件

trydjango18/
    __init__.py
    manage.py
    settings.py
    urls.py

  • manage.py django项目的重要工具,很多系统级的功能都是由它创建的,比如启动模拟器,创建超级用户,数据库迁移等。
  • setting.py 配置文件,包括数据库信息,调试标志和其他重要的变量。这里定义的变量,所有安装的app都是可以访问的。
  • urls.py 配置文件,映射URL模式和app功能。

为避免与virtualenv名字冲突,把项目目录改成 “src”

(trydjango18) D:\virtualdir\trydjango18>rename trydjango18 src
(trydjango18) D:\virtualdir\trydjango18>dir

 Volume in drive D is HP_RECOVERY
 Volume Serial Number is E237-2AC8
Directory of D:\virtualdir\trydjango18
2016/02/09  19:45    <DIR>          .
2016/02/09  19:45    <DIR>          ..
2015/12/11  23:42    <DIR>          Include
2016/02/09  19:28    <DIR>          Lib
2016/02/09  19:33                60 pip-selfcheck.json
2016/02/09  19:37    <DIR>          Scripts
2016/02/09  19:42    <DIR>          src
               1 File(s)             60 bytes
               6 Dir(s)  38,498,160,640 bytes free

(trydjango18) D:\virtualdir\trydjango18>ls

Include  Lib  Scripts  pip-selfcheck.json  src

模拟服务器 emulate a django server

django内置web server是最方便的内置功能之一。
优势包括:

  1. 不需要安装Web Server (apache),
  2. 自动检测和重新装载你的代码改动,相比重启Web Server,这个非常节省时间
  3. 它知道怎样找到和显示你的静态文件。

(trydjango18) D:\virtualdir\trydjango18\src>python manage.py runserver

Performing system checks...

System check identified no issues (0 silenced).
February 09, 2016 - 19:48:35
Django version 1.8, using settings 'trydjango18.settings'
Starting development server at [http://127.0.0.1](http://127.0.0.1):8000/
Quit the server with CTRL-BREAK.

这时,如果你打开调试窗口,会有下面打印
左右到右分别是:timestamp, request, HTTP response code, byte count.如果你访问一个不存在的网址或URL没配置好,返回码则为404.

[05/Mar/2017 16:38:23]"GET / HTTP/1.1" 200 12845

默认端口是8000, 也可以通过下列命令制定端口

python manage.py runserver 8080
python manage.py runserver 0.0.0.0:8000

将代码提交到github

先创建repository trydjango18course,然后通过下面命令提交代码到github
这一步不是必须的,但能够帮助你管理好你的项目

echo "# trydjango18course" >> README.md
git init
git add README.md
git commit -m "first commit"
git remote add origin git@github.com:hordechief/trydjango18course.git
git push -u origin master