请求访问流程:HTTP请求通过URL映射器,到达view层,view层能够从Model层获取数据,再从Template层取得不变的HTML数据,和Model层取得数据组合,最后返回HttpResponse应答。python
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py
其中:
myproject:项目的根目录
manage.py:一个命令行程序,用来管理Django项目
myproject/settings.py:项目配置
myproject/urls.py:配置项目的URL映射器
myproject/wsgi.py:一个WSGI兼容的Web服务器的入口。
复制代码
默认配置以下:mysql
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
举例:MySQL数据库配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME':'djangodb', # 库名
'USER':'root',
'PASSWORD':'root',
'HOST':'127.0.0.1',
}
}
复制代码
设置好数据库的配置文件后,须要执行以下命令初始化数据库。sql
$ python3 manage.py migrate
复制代码
Django中有项目和应用程序的分别,应用程序能够理解为具备特定功能的一些程序,项目能够包含多个应用程序,例如一个商城,能够把订单和商品详细放在两个应用程序中,各自负责不一样的功能。 建立应用程序,在myproject目录下执行:数据库
$ python3 manage.py startapp books
整个项目的目录结构以下:
myproject/
manage.py
myproject/
__init__.py
settings.py
urls.py
wsgi.py
books/
__init__.py
admin.py
apps.py # 注册应用
models.py # 模型层
tests.py # 测试相关代码
views.py # 视图层
migrations/ # 数据库升级产生的文件存放在此目录
__init__.py
复制代码
INSTALLED_APPS = [
'books.apps.BooksConfig', # 添加这行信息
}
复制代码
books/views.py文件django
from django.shortcuts import render
from django.http import HttpResponse
def hello(request):
return HttpResponse('<h1>你好,世界</h1>')
复制代码
myproject/myproject/urls.py设计模式
from django.contrib import admin
from django.urls import path, include
import books
from books import urls
urlpatterns = [
path('books/', include(books.urls)), # 函数
path('admin/', admin.site.urls), # 函数
]
复制代码
books/urls.pybash
from django.urls import path
from . import views
urlpatterns = [
path('hello/', views.hello, name='hello')
]
复制代码
在项目根目录下执行以下命令:服务器
$ python3 manage.py runserver
复制代码
request先到达myproject/myproject/urls.py的项目URL映射器中,根据path('books/', include(books.urls)),匹配books/,而后请求跳转到books.urls应用程序URL映射器,根据books/urls.py中的path('hello/', views.hello, name='hello'),匹配'hello/',请求跳转到views.hello这个视图函数中,views.hello视图函数处理业务逻辑,返回应答HttpResponse.app