栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

【从0创建一个Django应用程序】

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【从0创建一个Django应用程序】

一、创建一个Django项目 0、下载

Terminal下载输入 pip install Django

1、cd到要储存代码的目录,运行命令:
django-admin startproject mysite

这时当前目录创建mysite目录,此目录的文件结构如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        asgi.py
        wsgi.py
  • 外部mysite/:项目容器,可reneme manage.py:一个命令行实用程序,可让您以各种方式与此 Django 项目进行交互。
  • manage.py 项目的管理、启动、创建APP(不需要修改,常常用)
  • 内部mysite/:项目的实际python包,需要使用它来导入其中任何内容。
  • mysite/__init__.py:告诉python目录这是一个python包
  • mysite/settings.py:此项目的配置(常常操作)
  • mysite/urls.py:由Django驱动的站点“目录” URL和函数的对应关系(常常操作)
  • mysite/asgi.py:为你的项目提供服务的兼容ASGI的Web服务器的入口点 (不用改)
  • mysite/wsgi.py:为您的项目提供服务的WSGI 兼容 Web 服务器的入口点。(不用改)

验证 Django 项目是否有效。切换到外部mysite目录:

py manage.py runserver

将会看到以下输出:

Performing system checks...

System check identified no issues (0 silenced).

You have unapplied migrations; your app may not work properly until they are applied.
Run 'python manage.py migrate' to apply them.

May 21, 2022 - 15:50:53
Django version 4.0, using settings 'mysite.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

请忽略数据库迁移的警告。
至此一个项目已经设置好了。

二、创建投票应用程序 1、创建基本设置

应用程序可以存在于Python路径上的任何位置。在本blog中,将会在文件目录中创建应用程序。
cd 到与manage.py同一目录下,在命令端输入

py manage.py startapp polls

将会在此路径中创建文件夹polls,布局如下

polls/
    __init__.py        //
    admin.py           //固定,不用动,django默认提供了admin后台管理
    apps.py            //固定,不用动,app启动类
    migrations/        //固定,不用动,数据库变更记录
        __init__.py
    models.py          //重要,对数据库操作
    tests.py           //固定,不用动,单元测试
    views.py           //重要,函数  
2、写第一个视图

打开polls/views.py,将以下代码放入其中

from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

要调用此界面,需要把它映射到一个URL,为此我们需要一个URLconf,在polls目录中创建URLconf,(创建一个名为urls.py的文件),此时目录应如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
    urls.py

在polls/urls.py 文件中输入以下代码:

from django.urls import path

from . import views

urlpatterns = [
    path('', views.index, name='index'),
]

下一步为将根URLconf指向polls.urls模块,添加一个import for django.urls.include 并且插入一个*include()*在urlpatterns 列表中,此时代码如下:

from django.contrib import admin
from django.urls import include, path

urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]

该include()函数允许引用其他 URLconfs。每当 Django 遇到 时include(),它都会切断与该点匹配的 URL 的任何部分,并将剩余的字符串发送到包含的 URLconf 以进行进一步处理。
现在已经把视图连接到URLconf,验证它是否生效,在命令端输入

py manage.py runserver

并在浏览器中访问

http://localhost:8000/polls/

显示文本:Hello, world. You’re at the polls index.
该path()函数传递了四个参数:必要的有:route 和 view,可选的有: kwargs和name

route
是一个包含 URL 模式的字符串。当处理一个请求时,Django 从在urlpatterns中沿着第一个pattern开始向下移动,将请求的URL与每一个pattern进行比较,直到找到匹配的一个。
view
当 Django 找到匹配的模式时,它会调用指定的视图函数,并将HttpRequest对象作为第一个参数,并将路由中任何“捕获”的值作为关键字参数。

三、数据库配置

默认配置使用SQLite。
编辑mysite/settings.py时,设置TIME_ZONE为您的时区。此外,INSTALLED_APPS文件顶部的设置。它包含在此 Django 实例中激活的所有 Django 应用程序的名称。应用程序可以在多个项目中使用,您可以打包和分发它们以供其他人在他们的项目中使用。

INSTALLED_APPS包含以下应用程序,所有这些应用程序都带有 Django:
django.contrib.admin– 管理站点。您很快就会使用它。
django.contrib.auth– 认证系统。
django.contrib.contenttypes– 内容类型的框架。
django.contrib.sessions– 会话框架。
django.contrib.messages– 消息传递框架。
django.contrib.staticfiles– 管理静态文件的框架

但是,其中一些应用程序至少使用了一个数据库表,因此我们需要在数据库中创建这些表才能使用它们。运行以下命令

py manage.py migrate

该migrate命令查看INSTALLED_APPS设置并根据文件中的数据库设置mysite/settings.py和应用程序附带的数据库迁移创建任何必要的数据库表。

四、创建模型

在 Django 里写一个数据库驱动的 Web 应用的第一步是定义模型 - 也就是数据库结构设计和附加的其它元数据。

一个模型就是单个定义你的数据的信息源。模型中包含了不可缺少的数据区域和你存储数据的行为。

在这个投票应用中,需要创建两个模型:问题 Question 和选项 Choice。Question 模型包括问题描述和发布时间。Choice 模型有两个字段,选项描述和当前得票数。每个选项属于一个问题。这些概念可以通过一个 Python 类来描述。在polls/models.py中编辑如下:

from django.db import models


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')


class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

每个模型被表示为 django.db.models.Model 类的子类。每个模型有许多类变量,它们都表示模型里的一个数据库字段。每个字段都是 Field 类的实例。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925952.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号