安装
Django是以Python为语言环境的,所以要先确保计算机上已经安装了Python。
Linux
ubuntu:
sudo pip install Django==1.11.7
安装中指定了版本,可以修改版本号,或者不指定将安装软件源中已有的版本。
安装完成后,可以进入到Python交互模式中查看版本:
>>> import django >>> print(django.get_version()) 1.11.7
上面是简单而常用的方法,除了这种方法,还可以下载Django的源码进行安装:
git clone https://github.com/django/django.git
此时会在当前目录中看到一个名为django的目录,里面是最新版本的Django,随后在当前目录下执行如下操作:
sudo pip install -e ./django
系统会提示Django已经安装成功的信息:"Successfully installed Django"。
Windows
在cmd中执行:
pip install django==1.11.7
创建项目
方法一:
λ django-admin startproject mysite λ tree /f D:. └─mysite │ manage.py │ └─mysite settings.py urls.py wsgi.py __init__.py
方法二,在项目名称mysite后面有一个空格,然后还有一个句号(英文半角句号),如此也可以创建项目,只不过是在当前文件夹下创建。
λ django-admin startproject mysite . λ tree /f D:. │ manage.py │ └─mysite settings.py urls.py wsgi.py __init__.py
启动服务
进入与manage.py同目录下执行:
python manage.py runserver
会看到如下信息:
Starting development server at http://127.0.0.1:8000/ Quit the server with CTRL-BREAK.
此时再浏览器中输入http://127.0.0.1:8000/ 或者http://localhost:8000/,就会看到如下图所示的结果。
创建应用
项目已经创建好了,网站也有了,接下来要实现网站的具体功能,在Django中,人们把这些具体的功能称之为''应用''(application)。
λ python manage.py startapp blog λ tree /f D:. │ db.sqlite3 │ manage.py │ ├─blog │ │ admin.py │ │ apps.py │ │ models.py │ │ tests.py │ │ views.py │ │ __init__.py │ │ │ └─migrations │ __init__.py │ └─mysite │ settings.py │ urls.py │ wsgi.py │ __init__.py │ └─__pycache__ settings.cpython-36.pyc urls.cpython-36.pyc wsgi.cpython-36.pyc __init__.cpython-36.pyc
下面对生成的文件进行简要说明
Django的任务管理命令行工具 django-admin.py
λ django-admin Type 'django-admin help <subcommand>' for help on a specific subcommand. Available subcommands: [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate runserver sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver
查看帮助信息:
D:\lcg\mysite λ django-admin help startapp usage: django-admin startapp [-h] [--version] [-v {0,1,2,3}] [--settings SETTINGS] [--pythonpath PYTHONPATH] [--traceback] [--no-color] [--template TEMPLATE] [--extension EXTENSIONS] [--name FILES] name [directory] Creates a Django app directory structure for the given app name in the current directory or optionally in the given directory. positional arguments: name Name of the application or project. directory Optional destination directory optional arguments: -h, --help show this help message and exit --version show program's version number and exit -v {0,1,2,3}, --verbosity {0,1,2,3} Verbosity level; 0=minimal output, 1=normal output, 2=verbose output, 3=very verbose output --settings SETTINGS The Python path to a settings module, e.g. "myproject.settings.main". If this isn't provided, the DJANGO_SETTINGS_MODULE environment variable will be used. --pythonpath PYTHONPATH A directory to add to the Python path, e.g. "/home/djangoprojects/myproject". --traceback Raise on CommandError exceptions --no-color Don't colorize the command output. --template TEMPLATE The path or URL to load the template from. --extension EXTENSIONS, -e EXTENSIONS The file extension(s) to render (default: "py"). Separate multiple extensions with commas, or use -e multiple times. --name FILES, -n FILES The file name(s) to render. Separate multiple extensions with commas, or use -n multiple times.
manage.py
D:\lcg\mysite λ python manage.py Type 'manage.py help <subcommand>' for help on a specific subcommand. Available subcommands: [auth] changepassword createsuperuser [contenttypes] remove_stale_contenttypes [django] check compilemessages createcachetable dbshell diffsettings dumpdata flush inspectdb loaddata makemessages makemigrations migrate sendtestemail shell showmigrations sqlflush sqlmigrate sqlsequencereset squashmigrations startapp startproject test testserver [sessions] clearsessions [staticfiles] collectstatic findstatic runserver
与django-admin进行对比,发现代码有一部分相同,同时manage.py还有自己的特点。
django-admin命令对应着django-admin.py文件,她在Django安装后保存在Django安装目录下。(windows的C:\Python36\Scripts,linux的/bin)
而manage.py只是建立了一个项目之后,才保存于项目的根目录之中。
可以说manage.py是对django-admin的简单封装。
关于两者的更多辨析,请参阅官方文档:https://docs.djangoproject.com/en/1.11/ref/django-admin/
mysite
mysite是所建项目的管理功能目录,这个目录的名称因用户所创建的项目名称的不同而异,它里面的几个文件常用于向整个项目进行参数配置。
- settings.py:这个文件中包含了项目的初始化设置,可以针对整个项目进行有关参数的配置,比如配置数据库、添加应用等。
- urls.py:这是一个URL配置表文件,主要将URL映射到应用程序上,当用户请求某个URL时,Django项目会根据这个文件中的映射关系指向某个目标对象,该对象可以是某个应用的urls.py也可以是某个具体的视图函数。在Django中,这个文件也被称之为URLconf,这是Django非常强大的一个特性。
- wsgi.py:WSGI是Web Server Gateway Interface的缩写。WSGI是Python所选择的服务器和应用标准,Django也会使用。wsgi.py文件定义了我们所创建的项目都是WSGI应用。有关于WSGI的更多知识请参阅官方文档:https://wsgi.readthedocs.io/en/latest/index.html
- __pycache__:只有网站运行后它才会出现,它其实就是编译后的一个文件夹。里面都是以.pyc结尾的文件。
blog
blog是项目中所创建的项目之一,用创建项目的指令还可以创建很多其他的应用,每创建一个应用,Django都会在项目的根目录中创建一个子目录,并且目录中会有以下默认的文件:
- admin.py:在这个文件中,可以自定义Django管理工具,比如设置管理界面能够管理的项目,或者通过重新自定义与系统管理有关的类对象,向管理功能添加新的内容。
- apps.py:这个文件是Django1.10之后增加的,通常包含对应的配置,比如为管理功能提供一个适合的应用名称。
- migrations:Migrations are Django’s way of propagating changes you make to your models (adding a field, deleting a model, etc.) into your database schema. They’re designed to be mostly automatic, but you’ll need to know when to make migrations, when to run them, and the common problems you might run into.
- models.py:这是应用的数据模型。
- test.py:在这个文件中可以编写测试文档来测试所建立的应用。
- views.py:用户保存响应各种请求的函数或者类。如果编写的是函数,则称之为函数的视图文件。当然也可以用其他的文件名称,只不过在引入相应的函数或者类时,要注意名称的正确性,views.py是我们习惯使用的文件名。
db.sqlite3 这是一个默认是数据库
网站配置 settings.py
- DEBUG:其值为True或False。在开发过程中,需要设置成Flase,在测试时,Django能够显示详细的报错信息---这是“开发模式”。如果项目部署到真正要对外发布的服务器上,我们称之为“生产环境”,必须将其值修改为False,从而避免暴露项目的内部信息。
- INSTALLED_APPS:所有的项目,只有写在这里才生效。
- DATABASES:配置数据库的。参阅:http://www.cnblogs.com/0bug/p/8011260.html
- LANGUAGE_CODE:设置项目的语言,一般不需要修改,如果非汉语,则设置为LANGUAGE_CODE='zh-hans'(注意不是'zh-cn')。
- TIME_ZONE:设置时区,通常使用东八区,设置为"Asia/Shanghai"