热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

怎么创建pythondjango项目_创建Django项目图文实例详解

本文实例讲述了创建Django项目的方法。分享给大家供大家参考,具体如下:创建Django项目创建一个HelloDjango项目GitHub地址

本文实例讲述了创建Django项目的方法。分享给大家供大家参考,具体如下:

创建Django项目

创建一个HelloDjango项目

GitHub地址:https://github.com/liangdongchang/HelloDjango.git

1、在linux命令窗口终端下

创建Django项目

django-admin.py startproject HelloDjango

sudo apt install tree

tree HelloDjango/

2、在PyCharm中创建

file->New Project->Dhango

201906061207508.png

3、默认工程结构

HelloDjango

_init_.py

一个普通的包初始化模块

可以在其中做全局的初始化动作

例如:导入和初始化数据库

settings.py

Django项目的配置文件

本项目引用的组件

项目名

数据库配置

时间、语言

静态文件访问地址和存储路径

urls.py

维护项目的URL路由映射

当客户端访问时由哪个模块进行响应

使用views.py中的函数响应请求

url(r'^$', views.home)

将特定请求全部转交子模块中的urls.py处理

url(r'^axf/', include(‘App.urls', namespace='axf'))

wsgi.py

定义WSGI的接口信息

用于服务器部署

通常使用系统默认设置即可

manage.py

Django用于管理本项目的命令行工具

运行站点

数据库自动生成

4、开启Django服务

在左下角找到Terminal,点击,在命令窗口中输入:

python manage.py runserver

201906061207509.png

在浏览器输入服务器地址:http://127.0.0.1:8000/,可以看到服务器已经启动,按ctrl+c可以关闭服务器。

5、创建子应用

在命令窗口中输入:

python manage.py startapp MyApp

MyApp结构如下:

2019060612075010.png

应用目录结构

_init_.py:其中暂无内容,使得app成为一个包

admin.py:管理站点模型的声明文件,默认为空

apps.py:应用信息定义文件,在其中生成了AppConfig,该类用于定义应用名等数据

models.py:添加模型层数据类文件

views.py:定义URL相应函数(路由规则)

migrations包:自动生成,数据迁移文件

tests.py:测试代码文件

6、注册子应用

在工程目录的settings.py中注册应用

2019060612075111.png

7、 定义数据模型(Models)

1、定义班级类

在MyApp目录下的models.py中插入如下代码:

# 班级类

class Grade(models.Model):

# 班级名称

gname = models.CharField(max_length=10)

# 开班日期

gdate = models.DateTimeField()

# 女生数量

ggirlnum = models.IntegerField()

# 男生数量

gboynum = models.IntegerField()

# 是否已逻辑删除该班级

isDelete = models.BooleanField(default=False)

# 定义班级的打印输出信息

def __str__(self):

return self.gname

2、定义学生类

# 学生类

class Students(models.Model):

# 学生姓名

sname = models.CharField(max_length=20)

# 学生性别

sgender = models.BooleanField(default=True)

# 学生年龄

sage = models.IntegerField()

# 备注信息

sinfo = models.CharField(max_length=20)

# 是否已逻辑删除该学生

isDelete = models.BooleanField(default=False)

# 学生所属的班级

sgrade = models.ForeignKey(Grade,on_delete=None)

def __str__(self):

return self.sname

on_delete参数的各个值的含义:

on_delete=None, # 删除关联表中的数据时,当前表与其关联的field的行为

on_delete=models.CASCADE, # 删除关联数据,与之关联也删除

on_delete=models.DO_NOTHING, # 删除关联数据,什么也不做

on_delete=models.PROTECT, # 删除关联数据,引发错误ProtectedError

# models.ForeignKey('关联表', on_delete=models.SET_NULL, blank=True, null=True)

on_delete=models.SET_NULL, # 删除关联数据,与之关联的值设置为null(前提FK字段需要设置为可空,一对一同理)

# models.ForeignKey('关联表', on_delete=models.SET_DEFAULT, default='默认值')

on_delete=models.SET_DEFAULT, # 删除关联数据,与之关联的值设置为默认值(前提FK字段需要设置默认值,一对一同理)

on_delete=models.SET, # 删除关联数据,

a. 与之关联的值设置为指定值,设置:models.SET(值)

b. 与之关联的值设置为可执行对象的返回值,设置:models.SET(可执行对象)

8、数据迁移

迁移的概念: 就是将模型映射到数据库的过程

生成迁移

python manage.py makemigrations

执行迁移(在MyApp下的migrations包中)

python manage.py migrate

迁移过后,框架为我们自动生成了库表,Django默认自带的数据库是SQLite数据库;

数据库文件生成路径为工程根目录下的db.sqlite3;

2019060612075112.png

生成的数据表结构如图

2019060612075113.png

给数据库添加数据:

班级表:

2019060612075114.png

学生表:

2019060612075115.png

9、创建页面(Templates)

修改HelloDjango下的settings.py中的模板配置

2019060612075116.png

修改settings.py中的模板配置中的静态资源配置

# 静态文件访问路由

STATIC_URL = '/static/'

# 静态文件存储目录:根目录/static/

STATICFILES_DIRS = [

os.path.join(BASE_DIR, 'static'),

]

创建【根目录/static/img/】目录并放入一张wolf.jpg图片

2019060612075117.png

创建templates目录并在其中创建wolf.html

忧伤的狼

{# 加载静态资源 #}

{% load static %}

{# 加载图片位置 #}

我忧伤的眼神

2019060612075118.png

10、定义路由映射(urls)

在HelloDjango下的urls.py中插入如下代码

from django.conf.urls import url

from django.contrib import admin

from MyApp import views

urlpatterns = [

url(r'^admin/', admin.site.urls),

# http://127.0.0.1:8000/请求交由HelloDjango下的views中的index函数处理

url(r'^wolf', views.wolf),

]

11、定义路由处理函数(Views)

在MyApp下的views中插入如下代码:

# http://127.0.0.1:8000/wolf/

def wolf(request):

# 渲染页面并呈现给用户

return render(request,'wolf.html')

12、运行项目

终端执行如下命令中的一条

python manage.py runserver

python manage.py runserver [port]

python manage.py runserver [ip:port]

默认执行起来的端口是8000

ip指定为0.0.0.0的时候,匹配本机的全部ip

浏览器访问:localhost:8000

13、访问测试

2019060612075119.png

[参考网址]:https://www.jb51.net/article/162625.htm

希望本文所述对大家基于Django框架的Python程序设计有所帮助。

本文标题: 创建Django项目图文实例详解

本文地址: http://www.cppcns.com/jiaoben/python/261774.html



推荐阅读
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了markdown[软件代理设置]相关的知识,希望对你有一定的参考价值。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • imx6ull开发板驱动MT7601U无线网卡的方法和步骤详解
    本文详细介绍了在imx6ull开发板上驱动MT7601U无线网卡的方法和步骤。首先介绍了开发环境和硬件平台,然后说明了MT7601U驱动已经集成在linux内核的linux-4.x.x/drivers/net/wireless/mediatek/mt7601u文件中。接着介绍了移植mt7601u驱动的过程,包括编译内核和配置设备驱动。最后,列举了关键词和相关信息供读者参考。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Linuxchmod目录权限命令图文详解在Linux文件系统模型中,每个文件都有一组9个权限位用来控制谁能够读写和执行该文件的内容。对于目录来说,执行位的作用是控制能否进入或者通过 ... [详细]
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • 本文介绍了数据库的存储结构及其重要性,强调了关系数据库范例中将逻辑存储与物理存储分开的必要性。通过逻辑结构和物理结构的分离,可以实现对物理存储的重新组织和数据库的迁移,而应用程序不会察觉到任何更改。文章还展示了Oracle数据库的逻辑结构和物理结构,并介绍了表空间的概念和作用。 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Linux磁盘的分区、格式化的观察和操作步骤
    本文介绍了如何观察Linux磁盘的分区状态,使用lsblk命令列出系统上的所有磁盘列表,并解释了列表中各个字段的含义。同时,还介绍了使用parted命令列出磁盘的分区表类型和分区信息的方法。在进行磁盘分区操作时,根据分区表类型选择使用fdisk或gdisk命令,并提供了具体的分区步骤。通过本文,读者可以了解到Linux磁盘分区和格式化的基本知识和操作步骤。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
author-avatar
童月圆524
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有