如何新建一个django项目和应用?django项目开始起步
发布于 作者:苏南大叔 来源:程序如此灵动~如何新建一个django
项目?如何新建一个django
应用?这两个问句是不一样的。一个是“项目”,一个是"应用"。这2个名词在django
里面是不一样的。所以,在本文中,大家可以着重体验这2个名词的区别。还是以官方的tutorial
为例,来开始本文的内容。
本文测试环境:python@3.7.4
/django@2.2.4
/mac
。tutorial
官方文档相关说明见文末链接。
创建项目结构
建一个新的项目的命令如下:
django-admin startproject <name>
例如:
django-admin startproject mysite
这里面,需要注意的是:最后一个参数mysite
就是项目的名字,这个名字非常重要。
- 因为在对应的代码中,要大量使用这个名字。所以,在初始化的时候,请仔细想好了,想用的名字到底是什么。否则初始化之后,再修改就比较麻烦了。
- 这个名字,不能和保留字发生重合。比如保留字:
django
(和django
框架冲突)/test
(和python
内置组件冲突)。 - 这个命令执行完毕后,会生成两个嵌套的
mysite
目录,第一层的文件夹名字是可以修改的。第二个文件夹名字,不能随意修改,因为会在代码中使用。
启动项目
创建好项目之后,就是启动django
项目了。注意:这里需要在manage.py
的同级目录,执行下述命令。命令如下:
python manage.py runserver
默认端口号是8000
,您可以在启动命令后,增加一个可用的端口号,来更换一个新的端口号。例如:
python manage.py runserver 8888
这里需要说明的是:并不是传递一个端口号就可以生效的。因为需要端口号可用,而且在mac
下,还需要自定义端口号在1024
以上。这些都是特殊的地方,注意即可。否则有可能会遇到如下类似错误:
Error: That port is already in use.
Error: You don't have permission to access that port.
启动后的用户界面
启动之后,可以看到两个界面。一个是默认首页,另外一个是默认的后台管理页面。
当然,这个时候,默认首页和后台都是不能修改的,因为代码不在项目根目录下面。这个很意外吧?好吧,django
是不按常理出牌的。
而且管理后台,也是不能进入的,因为没有用户名密码。怎么才能进入后台呢?请参考苏南大叔的后续文字。
建新应用polls
这里讲述到了本文的重点内容,新建一个应用。假设应用名字是:polls
。这个需要注意的是:需要cd
到第一层目录,然后在manage.py
文件同级,执行下述命令。建立应用的命令如下:
python manage.py startapp <name>
例如:
python manage.py startapp polls
这个应用的名字也需要仔细想好再敲命令,因为这个名字也是要在代码中反复使用的。命令执行完成后,就可以看到。在项目根目录下面,和mysite
目录同级的位置,会出现一个polls
目录。两者的目录结构基本类似。
mysite
下保存的是全局的配置信息。注意,是配置信息。没有逻辑上的传统网页代码。就是个配置目录。polls
目录,下面除了自己独有的配置之外,还有部分传统的网页代码逻辑信息。
编写应用逻辑
因为在本文中,苏南大叔仅仅是简单测试目的。所以,这里就仅仅按着官方文档的说明,配置了polls
应用的默认首页view
信息。
polls/views.py
:
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
配置路由urls.py
需要配置mysite
和polls
两个位置的urls.py
设置。
应用详细路由
polls/urls.py
里面设置具体的页面路由信息:
from django.urls import path
from . import views
urlpatterns = [
path('', views.index, name='index'),
]
全局路由生效
mysite/urls.py
,负责引入polls
里面的路由:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('polls/', include('polls.urls')),
path('admin/', admin.site.urls),
]
这里主要说一下mysite
下面的urls
,除了默认的后台模块admin
的路由admin.site.urls
之外,其它的程序猿编写的应用路由,都是使用include()
函数引入的。
提升应用路由级别
因为引入polls
模块后,原项目的默认首页就不能访问了。所以,苏南大叔个人建议把polls
应用的路由设置为默认。这样的话,访问polls
模块的时候,就可以通过默认首页/
,而不是通过二级目录polls
了。
全局路由信息mysite/urls.py
,修改如下:
from django.contrib import admin
from django.urls import include, path
urlpatterns = [
path('', include('polls.urls')),
path('admin/', admin.site.urls),
]
关键修改点是:
path('', include('polls.urls')),
大家可以对比查看:
path('polls/', include('polls.urls')),
相关链接
- https://docs.djangoproject.com/zh-hans/2.2/intro/
- https://docs.djangoproject.com/zh-hans/2.2/intro/tutorial01/
总结
本文中,苏南大叔主要讲述了:在django
项目中,如何新建一个应用,进而以自己的理解,阐述“应用”的概念和"项目"的概念有什么具体的区别。更多苏南大叔的django
经验文章,请参考下面的链接:
本博客不欢迎:各种镜像采集行为。请尊重原创文章内容,转载请保留作者链接。