新建Django项目

1. 创建项目

使用Django提供的命令,可以创建一个Django项目实例需要的配置项——包括数据库配置、Django配置和应用程序配置的集合。新建Django项目命令的语法格式如下:

django-admin startproject 工程名称

例如:想要在D:\的pythonProject目录中创建一个名为mysite的项目工程,可执行如下命令:

cd d:\pythonProject
django-admin startproject mydemo

执行后,会多出一个新目录名为mydemo,此即为新创建的工程目录。

2. 项目目录说明

  • mydemo : 根目录,项目的容器
  • manage.py:一个提供Django项目管理功能的命令行工具
  • **子mydemo:**一个纯Python包,其中存放项目文件,在引用项目文件时会使用到这个包名。
  • mydemo\settings.py 是项目的整体配置文件。
  • mydemo\urls.py 是项目的URL配置文件。
  • mydemo\wsgi.py 是项目与WSGI兼容的Web服务器入口。

3. 启动项目

在开发阶段,为了能够快速预览到开发的效果,django提供了一个纯python编写的轻量级web服务器,仅在开发阶段使用。

运行服务器命令如下:

python manage.py runserver ip:端口
或:
python manage.py runserver

可以不写IP和端口,默认IP是127.0.0.1,默认端口为8000

  • django默认工作在调式Debug模式下,如果增加、修改、删除文件,服务器会自动重启。

  • 按ctrl+c停止服务器。

  • 默认情况下开发服务器在本地IP的8000端口上启动,若要更改端口,可将端口作为命令行参数传递。例如在端口8080上启动服务器,命令如下所示:

    python manage.py runserver 8080
    

4. 创建应用

在Web应用中,通常有一些业务功能模块是在不同的项目中都可以复用的,故在开发中通常将工程项目拆分为不同的子功能模块,各功能模块间可以保持相对的独立,在其他工程项目中需要用到某个特定功能模块时,可以将该模块代码整体复制过去,达到复用。在Django中, 把这一个个子功能模块成为应用,一个Django项目可以包含多个Django应用,每个应用可在多个项目中被重复利用

在django中,创建应用模块目录可以通过命令来操作,即:

python manage.py startapp 应用名称

manage.py 为上述创建工程时自动生成的管理文件。

例如,在刚才创建的mysite工程中,想要创建一个用户users应用模块,可执行:

python manage.py startapp users

4.1 应用目录说明

  • admin.py 文件: 跟网站的后台管理站点配置相关。
  • apps.py 文件: 用于配置当前应用的相关信息。
  • migrations 目录: 用于存放数据库迁移历史文件。
  • models.py 文件: 用户保存数据库模型类。 m : model v: view T: Template
  • tests.py 文件: 用于开发测试用例,编写单元测试。
  • views.py 文件: 编写视图函数,MVT模型中的V。
  • db.sqlite3 : 轻量级关系型数据库,django默认使用sqlite数据库

4.2 注册应用

创建出来的子应用目录文件虽然被放到了工程项目目录中,但是django工程并不能立即直接使用该应用,需要注册安装后才能使用。

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

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

例如,将刚创建的demo子应用添加到工程中,可在INSTALLED_APPS列表中添加**‘demo.apps.DemoConfig’**。

4.3 在pycharm中 打开Django项目

  • 找到项目的根目录,打开Django项目
  • 设置项目的python解析器

5. 创建视图、定义路由

Django的视图是定义在应用的views.py中的。

5.1 创建视图

打开刚创建的users模块,在views.py中编写视图代码。

from django.http import HttpResponse
# 127.0.0.1:8000/index
def index(request):
    """
    index视图
    :param request: 包含了请求信息的请求对象
    :return: 响应对象
    """
    return HttpResponse("hello the world!")
# 127.0.0.1:8000/detail
def detail(request):
    """
    index视图,首页视图
    :param request: 请求对象
    :return: 响应对象
    """
    return HttpResponse('详情页')
  • 视图函数的第一个传入参数必须定义,用于接收Django构造的包含了请求数据的HttpReqeust对象,通常名为request
  • 视图函数的返回值必须为一个响应对象,可将要返回的字符串数据放到一个HTTPResponse对象中。

5.2 定义路由URL

为了保证服务器能成功找到用户请求的页面,需为应用配置路由。在应用users中创建子路由文件urls.py,分别配置根路由和子路由,配置信息分别如下:

  • 在应用中新建一个urls.py文件用于保存该应用的路由。

  • 在users/urls.py文件中定义子路由信息。

    from django.urls import path
    from . import views
    # urlpatterns是被django自动识别的路由列表变量
    urlpatterns = [
        # 每个路由信息都需要使用url函数来构造
        # url(路径, 视图)
        path('index/', views.index),
        path('detail/', views.detail),
    ]
    
  • 在项目工程总路由mydemo/urls.py中添加users应用的路由信息

    from django.contrib import admin
    from django.urls import path, include
    
    urlpatterns = [
        path('admin/', admin.site.urls),
        path('demo/', include('demo.urls'))
    ]
    
    • 使用include来将子应用users里的全部路由包含进项目路由中;
    • ‘demo/’ 决定了users应用的所有路由都已**/demo/开头,如我们刚定义的视图index,其最终的完整访问路径为/demo/index/**。

6. 在Pycharm中创建Django项目

使用pycharm创建Django项目时默认使用最新的版本

当安装成功后,再打开项目解析器设置,效果如下

修改settings.py文件

解决办法:

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年9月8日
下一篇 2023年9月8日

相关推荐