https://www.djangoproject.com/
一、 Django安装
要想安装Django首先要安装Python。运行命令pip install django进行安装(pip是用来安装和管理python包的工具),安装完成提示 Installing django-admin script to /home/user_name/virtualenv/bin,这时Django就安装好了。
到这个目录下去 ~/virtualenv/bin可以找到django-admin.py这个文件,这是个很重要的文件,是Django的管理命令行。
二、新建一个Django项目:
运行命令~/virtualenv/bin/django-admin.py startproject mysite,这时会生成一个目录。
mysite/ # 只是一个目录名,可以修改
manage.py # 同django-admin.py作用差不多,在项目创建时生成
mysite # 是一个python package
__init__.py
settings.py
urls.py
wsgi.py
运行命令./manage.py runserver localhost:8000后,打开网页输入localhost:8000可以访问到Django的默认界面。
关于python package可参考https://docs.python.org/2/tutorial/modules.html
http://platinhom.github.io/2015/08/29/pythonModule/
三、 manage.py
#!/usr/bin/env python
import os
import sys
if __name__ == "__main__":
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "mysite.settings")
from django.core.management import execute_from_command_line
execute_from_command_line(sys.argv)
os.environ可以到python命令行里运行一下,输出的是当前目录环境的一些详细信息,官方解释A mapping object representing the string environment. 也就是说os.environ是一个mapping类型。而该类型有一个setdefault(key[, default])方法,最终的结果就是os.environ中添加了一条’DJANGO_SETTINGS_MODULE’: ‘mysite.settings’,
django.core.management中的execute_from_command_line方法被引用并执行,参数是执行manage.py后面跟的参数,这里也就是两个参数runserver和localhost:8000。django安装在了~/virtualenv/lib/python2.7/site-packages/django,通常是python的目录下面。找到我们引用的包django/core/management下__init__.py
def execute_from_command_line(argv=None):
"""
A simple method that runs a ManagementUtility.
"""
utility = ManagementUtility(argv)
utility.execute()
ManagementUtility类也在同一个文件中。其做的就是解析一下子命令,使用了一个继承了ArgumentParser的类CommandParser处理命令行参数。添加了–settings 和–pythonpath两个特殊参数可能通过添加这两个参数更改settings.py文件的位置和python的路径。然后检查settings.py文件并进行配置。如果有runservert 和–noreload参数则自动加载。
读取和处理settings.py文件 django/conf
加载django django/utils
四、 settings.py
settings文件是python的一个模块,所以该文件要注意python的缩进等格式。该文件会包含数据库密码等信息,要注意更改它的文件访问权限。
五、urls.py
主要完成URL到应用功能的映射,会一个个匹配正则,并找到相应的函数去执行。