Python系列之-1、Django入门

115 阅读2分钟

MVT设计模式

image

  请求访问流程:HTTP请求经过URL映射器,到达view层,view层可以从Model层获取数据,再从Template层取得不变的HTML数据,和Model层取得数据组合,最后返回HttpResponse应答。

简单入门教程

创建项目

1. 在终端下,进入准备存放项目的目录下执行:django-admin startproject myproject,此时,目录结构为:
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服务器的入口。
2. Django的项目配置信息需要保存到数据库中,默认使用sqlite3,在myproject/settings.py中设置。

  默认配置如下:

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',
	}
}

  设置好数据库的配置文件后,需要执行如下命令初始化数据库。

$ python3 manage.py migrate
3. 创建应用程序

  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
4. 第一个Django程序
1)修改myproject/settings.py文件,添加应用程序信息
INSTALLED_APPS = [
    'books.apps.BooksConfig',   # 添加这行信息
}
2) 定义视图函数:参数是request(HttpRequest),返回值是HttpResponse。

  books/views.py文件

from django.shortcuts import render
from django.http import HttpResponse

def hello(request):
    return HttpResponse('<h1>你好,世界</h1>')
3) 修改项目的url映射器

  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),  # 函数
]
4) 增加应用程序下的url映射器

  books/urls.py

from django.urls import path
from . import views

urlpatterns = [
    path('hello/', views.hello, name='hello')
]
5) 启动服务器

  在项目根目录下执行如下命令:

$ python3 manage.py runserver
6) 访问http://127.0.0.1:8000/books/hello/,可以看到你好,世界的页面。
7) 解释

  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.

后续再添加view和Model相关知识。