Django2.2.1在项目中创建应用程序
Django创建名为’mysite’的项目
从命令行cd进入要存储代码的目录,然后运行以下命令:
django-admin startproject mysite
让我们来看看startproject创造了什么:
mysite/
manage.py
mysite/
__init__.py
settings.py
urls.py
wsgi.py
这些文件是:
外部mysite/根目录只是项目的容器。它的名字对Django来说无关紧要; 你可以将它重命名为你喜欢的任何东西。
manage.py:一个命令行实用程序,允许您以各种方式与此Django项目进行交互。您可以manage.py在django-admin和manage.py中阅读有关的所有详细信息 。
内部mysite/目录是项目的实际Python包。它的名称是您需要用来导入其中任何内容的Python包名称(例如mysite.urls)。
mysite/init.py:一个空文件,告诉Python该目录应该被视为Python包。如果您是Python初学者,请阅读官方Python文档中有关包的更多信息。
mysite/settings.py:此Django项目的设置/配置。 Django设置将告诉您有关设置如何工作的所有信息。
mysite/urls.py:这个Django项目的URL声明; 您的Django支持的站点的“目录”。您可以在URL调度程序中阅读有关URL的更多信息。
mysite/wsgi.py:与WSGI兼容的Web服务器的入口点,用于为您的项目提供服务。有关更多详细信息,请参阅如何使用WSGI进行部署。
运行服务
仅本机可访问的服务(端口号默认为8000)
py manage.py runserver
或
py manage.py runserver 8080//可通过这种方式指定运行服务的端口号
局域网内可访问的服务
py manage.py runserver 0.0.0.0:8000//0.0.0.0表示允许同一局域网内任意ip的主机访问网站
或者
py manage.py runserver 0:8000//这是简写方式
此处注意修改settings.py
ALLOWED_HOSTS = []
为
ALLOWED_HOSTS = ['*']//表示允许所有用户访问
创建名为‘polls’的应用程序
运行命令
python manage.py startapp polls
此时polls的文件夹内容目录应当如下:
polls/
__init__.py
admin.py
apps.py
migrations/
__init__.py
models.py
tests.py
urls.py
views.py
在项目目录中可以看到一个和项目同名的文件夹(主应用)以及一个polls文件夹(应用)
修改polls/views.py文件
from django.shortcuts import render
# Create your views here.
from django.http import HttpResponse
def index(request):
return HttpResponse("Hello, world. You're at the polls index.")
修改polls/urls.py文件
from django.urls import path
from . import views
urlpatterns = [
path('index', views.index, name='index'),
]
修改主应用的urls.py文件
将子应用的url目录直接添加到主应用的项目目录中
from django.contrib import admin
from django.urls import include,path,re_path
#from django.conf.urls import patterns,path
urlpatterns = [
...
path('polls/', include('polls.urls')),
]
这时,访问polls中的view,其路径应当为http://localhost:8000/polls/index
如果是局域网内可访问,则应当为http://IPv4地址:8000/polls/index
其中8000是端口号
修改主应用settings.py文件
在INSTALLED_APPS配置中加上刚刚创建的polls应用下apps.py文件中配置函数的虚拟路径
polls.py/apps.py中有个PollsConfig函数,其虚拟路径为polls.apps.PollsConfig
INSTALLED_APPS = [
'polls.apps.PollsConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
这一步主要是为了让项目知道,当前项目中使用了哪些应用。