Django 学习实践(一)
1、环节准备
python安装版本:
C:\Users\JUJU>python --version
Python 3.7.2
Django安装版本:
C:\Users\JUJU>python -m django --version
2.2.4
2、创建第一个Django项目——HelloWorld
2.1 Django管理工具
安装 Django 之后,您现在应该已经有了可用的管理工具 django-admin.py。我们可以使用 django-admin.py 来创建一个项目:
我们可以来看下django-admin.py的命令介绍:
C:\Users\JUJU>django-admin
Type 'django-admin.py 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
Note that only Django core commands are listed as settings are not properly configured (error: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.).
2.2 创建第一个项目
如果这是你第一次使用 Django 的话,你需要一些初始化设置。也就是说,你需要用一些自动生成的代码配置一个 Django project —— 即一个 Django 项目实例需要的设置项集合,包括数据库配置、Django 配置和应用程序配置。
打开命令行,cd 到一个你想放置你代码的目录,然后运行以下命令:
d:\pyprogram\mydjango>django-admin startproject HelloWorld
创建完成后我们可以查看下项目的目录结构:
d:\pyprogram\mydjango>tree /f
D:.
├─HelloWorld
│ manage.py
│
└─HelloWorld
settings.py
urls.py
wsgi.py
__init__.py
这些目录和文件的用处是:
-
最外层的 HelloWorld/ 根目录只是你项目的容器, Django 不关心它的名字,你可以将它重命名为任何你喜欢的名字。
-
manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有 manage.py 的细节。
-
里面一层的 HelloWorld/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python包名。 (比如 HelloWorld.urls)。
-
HelloWorld/init.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识。
-
HelloWorld/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django 配置 了解细节。
-
HelloWorld/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL调度器 文档来获取更多关于 URL 的内容。
-
HelloWorld/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。
如果你的当前目录不是外层的 HelloWorld 目录的话,先切换到此目录,然后再运行启动的命令(输入python全拼也可(python==py)):
d:\pyprogram\mydjango>cd HelloWorld
d:\pyprogram\mydjango\HelloWorld>py manage.py runserver
你应该会看到如下输出:
Watching for file changes with StatReloader
Performing system checks...
System check identified no issues (0 silenced).
You have 17 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
August 26, 2019 - 13:56:45
Django version 2.2.4, using settings 'HelloWorld.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.
你刚刚启动的是 Django 自带的用于开发的简易服务器,它是一个用纯 Python 写的轻量级的 Web 服务器。我们将这个服务器内置在 Django 中是为了让你能快速的开发出想要的东西,因为你不需要进行配置生产级别的服务器(比如 Apache)方面的工作,除非你已经准备好投入生产环境了。
现在,服务器正在运行,浏览器访问 https://127.0.0.1:8000/。你将会看到一个“祝贺”页面,随着一只火箭发射,服务器已经运行了。
注:
更换端口
默认情况下,runserver 命令会将服务器设置为监听本机内部 IP 的 8000 端口。
如果你想更换服务器的监听端口,请使用命令行参数。举个例子,下面的命令会使服务器监听 8080 端口:
py manage.py runserver 8080
如果你想要修改服务器监听的IP,在端口之前输入新的。比如,为了监听所有服务器的公开IP(这你运行 Vagrant 或想要向网络上的其它电脑展示你的成果时很有用),使用:
py manage.py runserver 0:8000
0 是 0.0.0.0 的简写。完整的关于开发服务器的文档可以在 :djamdin:runserver
参考文档中找到。
2.3 视图和URL配置
在先前创建的 HelloWorld 目录下的 HelloWorld 目录新建一个 view.py 文件,并输入代码:
from django.http import HttpResponse
def hello(request):
return HttpResponse("Hello world ! ")
接着,绑定 URL 与视图函数。打开 urls.py 文件,删除原来代码,将以下代码复制粘贴到 urls.py 文件中:
from django.urls import path
from . import views
urlpatterns = [
path('',views.hello,name='hello'),
]
整个目录结构如下:
D:.
│ db.sqlite3
│ manage.py
│
└─HelloWorld
│ settings.py
│ urls.py
│ views.py
│ wsgi.py
│ __init__.py
│
└─__pycache__
settings.cpython-37.pyc
urls.cpython-37.pyc
views.cpython-37.pyc
wsgi.cpython-37.pyc
__init__.cpython-37.pyc
完成后,启动 Django 开发服务器,并在浏览器访问打开浏览器并访问:
写在最后:
manage.py == django-admin ==python -m django
项目文件执行顺序(大致描述):
1、settings.py:加载settings,获取web服务器、地址配置模块、…
WSGI_APPLICATION = ‘HelloWorld.wsgi.application’
ROOT_URLCONF = ‘HelloWorld.urls’
INSTALLED_APPS=…(如果有应用的话)
2、wsgi.py:web服务器入口
3、urls.py:地址绑定视图(django驱动网站目录)
4、views.py:视图(最终呈现的内容)