Django(一) 创建工程,配置说明

一、创建一个Django工程项目

1、创建

要进入到项目要保存的位置我选择的是E:/workspace
格式:django-admin startproject 项目名   
django-admin startproject test_django

让我们看看 startproject 创造了什么

test_django/
	manage.py 
	test_django/
		__init__.py
		settings.py
		urls.py
		wigi.py

-外部的 test_django/ 根目录只是一个容器,与他的名字无关

  • manage.py 一个命令行实用程序,允许您以各种方式与此Django项目进行交互。
  • 内部 test_django/ 目录是项目的实际python包。
  • test_django/__init__.py:__ 一个空文件,告诉Python该目录应该被视为Python包。
  • test_django/settings.py: 此Django项目的设置/配置。
  • test_django/urls.py: 这个Django项目的URL声明; 您的Django支持的站点的“目录”。
  • test_django/wsgi.py: 与WSGI兼容的Web服务器的入口点,用于为您的项目提供服务.

2、启动服务器

进入到外部test_django 中

//启动:(默认的端口为8000,IP为 127.0.0.1)
	python manage.py runserver
//当你遇见端口被占用错误时,只需启动服务器也指定端口和IP,格式如下:
	python manage.py runserver 127.0.0.1:8001

在这里插入图片描述
在浏览器查看运行结果:(当你看到下图时,你已经成功了)
在这里插入图片描述

3、将工程在pycharm中打开运行

①对于打开工程就不用说了,打开pycharm 点击file---->open 然后找到你工程的目录打开。
②选择解释器:file —> setting ----> project —> project interpreter 选择你的解释器
在这里插入图片描述
③ 运行工程,你也可以打开pacharm 的Terminal 去运行工程,不过我么既然使用了可视化界面,就不想去敲命令。运行manage.py 会出现以下问题,只需添加运行参数即可。
在这里插入图片描述

添加运行参数:

  • 选择Edit configurations
    在这里插入图片描述
  • 添加运行参数 runserver
    在这里插入图片描述

二、创建一个子应用程序

在Django中编写的每个应用程序都包含一个遵循特定约定的Python包。Django附带了一个实用程序,可以自动生成应用程序的基本目录结构,因此您可以专注于编写代码而不是创建目录。

1、创建子应用

// python manage.py startapp 子应用程序名
python manage.py startapp book_test

执行完上面的创建应用代码,就会在你代码执行的位置创建一个book_test目录,其布局格式如下:

book_test/
    __init__.py   (说明book_test 是一个pyhton包)
    admin.py     (管理员)
    apps.py
    migrations/  (迁移文件)
        __init__.py
    models.py   (模型,和数据库进行交互)
    tests.py  (写测试代码)
    views.py   (视图)

2、注册应用

在工程配置文件settings.py中,INSTALLED_APPS项保存了工程中已经注册安装的子应用,初始工程中的INSTALLED_APPS如下:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
]

对于1.8以前的Django注册应用,只需在INSTALLED_APPS添加应用名即可

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 添加应用
    'book_test'
]

1.8之后的版本注册安装一个子应用的方法,即是将子应用的配置信息文件apps.py中的Config类添加到INSTALLED_APPS列表中。

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    # 添加应用
    'book_test.apps.BookTestConfig'
]

三、创建视图

同Flask框架一样,Django也用视图来编写Web应用的业务逻辑。
Django的视图是定义在子应用的views.py中的。

1、创建视图函数

打开子应用的 view.py 定义视图函数

from django.http import HttpResponse
def book_index(requset):
    """
    book_index 视图
    :param requset:包含了请求信息的请求对象,使用此对象获取请的的一些数据:请求参数,请求方式
    :return: 返回相应对象
    """
    # 返回相应对象,相比与flask中可以直接返回字符串,Django中不支持直接返回字符串,必须返回 一个响应对象
    return HttpResponse('毁灭你,与你何干')

说明:

  • 视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request。
  • 视图函数的返回值必须为一个响应对象,不能像Flask一样直接返回一个字符串,可以将要返回的字符串数据放到一个HTTPResponse对象中。

2、创建路由

子应用创建路由

类似于flask中,给不同的应用定义蓝图。在Django中我们给我们的应用定义一个 url.py (当然这个文件的名字可以自己起,但我们习惯用与工程的路由文件相同的名字)文件保存此应用的路由信息。

from django.conf.urls import url
from . import views
# urlpatterns是被django自动识别的路由列表变量
urlpatterns = [
    # 每个路由信息都需要使用url函数来构造
    # url(路径, 视图)
    url(r'^book_index/$', views.book_index),
]

在总工程中添加路由

类似于flask中,要将应用的蓝图注册到app中一样,Django要将应用添加到总工程的路由中。

  • flask注册蓝图
# 创建蓝图
order_blue = Blueprint('order',__name__,url_prefix='/order')
# APP中注册蓝图
app.register_blueprint(order_blue)
  • Django添加应用路由
from django.conf.urls import url,include
from django.contrib import admin
from django.urls import path

urlpatterns = [
	# django 默认包含的管理路由
    path('admin/', admin.site.urls),
    # 将子应用的路由添加到总工程中
    url(r'^book_test/',include('book_test.urls'))
]

url函数
在这里插入图片描述

  • 使用include来将子应用users里的全部路由包含进工程路由中;include函数除了可以传递字符串之外,也可以直接传递应用的urls模块如

url(r’^book_test/’, include(book_test.urls)), # 添加应用的路由

  • r’^book_test/’ 决定了book_test子应用的所有路由都已/book_test/开头,如我们刚定义的视图index,其最终的完整访问路径为/book_test/index/。
    运行项目,访问/book_test/index/
    在这里插入图片描述

四、配置、静态文件

  • BASE_DIR
    django 为我们提供了一个一个项目的文件路径,setting.py 的全局变量
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

在这里插入图片描述

  • 本地语言与时区

Django支持本地化处理,即显示语言与时区支持本地化。本地化是将显示的语言、时间等使用本地的习惯,这里的本地化就是进行中国化,中国大陆地区使用简体中文,时区使用亚洲/上海时区,注意这里不使用北京时区表示。初始化的工程默认语言和时区为英语和UTC标准时区。

# 默认语言,美国英语
LANGUAGE_CODE = 'en-us'
# 默认时区
TIME_ZONE = 'UTC'

修改成汉语和中国时区

# 中文
LANGUAGE_CODE = 'zh-hans'
# 中国时区:亚太上海时区
TIME_ZONE = 'Asia/Shanghai'
  • 静态文件配置
# 静态文件url访问路由
STATIC_URL = '/static/'
# 静态文件的保存位置:项目的根目录/static_files 中
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'static_files'),
]

app应用配置:

class BookTestConfig(AppConfig):
    name = 'book_test'
    verbose_name = '图书管理'

AppConfig.name属性表示这个配置类是加载到哪个应用的,每个配置类必须包含此属性,默认自动生成。
AppConfig.verbose_name 属性用于设置该应用的直观可读的名字,此名字在Django提供的Admin管理站点中会显示,

其实还有许多其他配置,这里就不说明了,等到将具体模块时,再说明。

猜你喜欢

转载自blog.csdn.net/qq_38803950/article/details/85010083