安装:
可使用python自带的pip工具安装:shell输入命令pip install Django即可。
请注意!如果你安装了python2和python3两个版本,请注意区分你的Django安装在那个python的库中。
创建Django项目:
在你放置Django项目的目标文件夹下打开命令行,输入命令:Django-admin startproject XXX即创建一个Django项目的文件夹,‘XXX’为自定义的Django项目名称。

测试链接:
此时打开上述创建的目录(和manage.py文件在同一个目录下,以后执行python manage.py X命令都要在此命令下),然后打开命令行,执行命令:python manage.py runserver,会出现如下画面:

此时在浏览器键入127.0.0.1:8000,如果出现如下提示,表示django项目创建成功:

当然我们也可以执行如下命令,这样的话就可以用其它的电脑打开这个网页
>>>python manage.py runserver 0.0.0.0:8000
然后在其它服务器键入这台电脑的IP:8000就可以打开这个页面
创建Django中的应用:
执行命令:python manage.py startapp XXX,‘XXX’为自定义都Django应用名称,此时文件夹中路径应该是这样的:

此时就创建了一个应用,在Django项目根录下会出现一个同名都文件夹,此时打开Django项目根目录下与项目同名都文件夹(注意是与项目名同名,而非应用名),会有四个文件:
settings.py存放与项目相关的全局配置
urls.py是整个项目的url配置入口
wsgi.py是项目启动的wsgi文件
打开settings.py文件,在INSTALLED_APPS = []中尾行添加应用名。

创建数据库
回到项目根目录下,打开命令行执行:python manage.py migrate,创建数据库。

此时发现项目根目录下多出了一个数据库文件:

配置数据库:
django自带一个sqlite数据库,当然你也可以配置成Mysql。打开django项目的settings.py文件,找到这几行数据:


配置Django-ORM:
ORM,即Object-Relational Mapping(对象关系映射),它的作用是在关系型数据库和业务实体对象之间作一个映射,这样,我们在具体的操作业务对象的时候,就不需要再去和复杂的SQL语句打交道,只需简单的操作对象的属性和方法。
此时打开项目根目录下与应用名同名的文件夹,找到models.py文件并打开,创建数据库的映射表模型:

class Meta
Django模型类的一个Meta内部类,它用于定义一些Django模型类的行为特性。下面是它的一些参数作用:

创建并保存好之后,回到项目根目录下,执行命令:
python manage.py makemigrations 和 python manage.py migrate 将刚添加的数据模型在数据库中创建对应的数据表:

以后,每次修改了models.py文件,都需要执行这两行命令。
创建视图函数:
打开项目根目录下与应用名同名的文件夹,找到views.py文件并打开,在顶行导入创建的ORM,并添加对应的视图函数,视图函数通过render方法接收一个request请求,返回一个html页面:

在函数中可以对ORM的数据进行增删改查

配置模版文件:
在上述应用文件夹中,新建两个空文件夹templates和static,分别用于后续装载html页面文件和静态文件,之后回到settings.py文件,找到TEMPLATES = [ ] 中的'DIRS':[ ]这行,在这行的[ ]中添加模版路径os.path.join(BASE_DIR,'templates').replace('\\','/'):


保存退出后,在上述templates文件夹中创建一个html文件,命名为index.html,打开此文件,在顶行添加一行{% load staticfiles %},然后将<head>各部分从static文件夹引入的静态链接全改为href = “{% static 'xx/xxx' %}”的样式,如下图:

配置静态文件路径:
添加的是静态文件夹的路径

注意:STATIC_ROOT是用来存放使用python manage.py collectstatic命令收集起来的文件的,这个目录也是在正式环境(DEBUG=FALSE)时NGINX寻找项目静态文件的目录。这个目录不会在DEBUG=TRUE时发挥作用,此时如果使用manage.py runserver启动时Django会自动在(myProject/appName/static)寻找静态文件目录。
配置URL:
打开根目录下与项目名同名的文件夹,找到urls.py文件并打开,开头添加一行from XXX.views import YYY语句从views.py文件中引入视图函数,其中XXX为应用名,YYY为视图函数名。

之后,在urlpatterns = [ ]中添加视图函数对应的URL映射。
*Ctrl+p可以快速搜索文件名

测试启动:
完成上述步骤后,可以测试启动了!在根目录下打开命令行,执行python manage.py runserver命令。如果命令行出现下面的提示,则Django启动成功。

打开浏览器,输入127.0.0.1:8000/index则出现下图:

配置后台:
Django有自带的后台,可以用以管理数据库。在项目更目录下打开命令行,执行python manage.py createsuperuser命令创建超级管理员。并按照提示一次输入账户名、邮箱(可不填,直接回车)、密码,然后回车,出现下图即成功。

根目录下执行python manage.py runserver成功运行后,在浏览器中输入127.0.0.1:8000/admin即可打开后台的登录页面。

输入刚创建的用户名密码登录可以进入后台查看数据,为了在后台显示models.py中注册的数据表和记录,需要打开应用目录下的admin.py文件,添加from XXX.models import YYY和admin.site.Register(YYY)两条语句,其中XXX是应用名,YYY是在models.py中建立的数据表名。

保存后,重新在根目录下运行python manage.py runserver,再进入后台就可以看到在models.py中注册的数据表了。

点击People一行的Add建立两个People的数据实例,然后单击People进入这张数据表,发现无法区分两个数据实例。

此时,我们回到models.py中,在peole类下添加魔法方法:
def__str__(self):
return self.name

之后执行python manage.py makemigrations 和python manage.py migrate便可以在后台用这个数据表的name属性来区分两个数据实例了。

转载请注明出处,作者微信(荷鲁斯的眼:Horus0421)
网友评论