热门标签 | 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



推荐阅读
  • 整理于2020年10月下旬:总结过去,展望未来Itistoughtodayandtomorrowwillbetougher.butthedayaftertomorrowisbeau ... [详细]
  • 将XML数据迁移至Oracle Autonomous Data Warehouse (ADW)
    随着Oracle ADW的推出,数据迁移至ADW成为业界关注的焦点。特别是XML和JSON这类结构化数据的迁移需求日益增长。本文将通过一个实际案例,探讨如何高效地将XML数据迁移至ADW。 ... [详细]
  • 本文分享了作者在使用LaTeX过程中的几点心得,涵盖了从文档编辑、代码高亮、图形绘制到3D模型展示等多个方面的内容。适合希望深入了解LaTeX高级功能的用户。 ... [详细]
  • 本文详细介绍了如何在 Ubuntu 14.04 系统上搭建仅使用 CPU 的 Caffe 深度学习框架,包括环境准备、依赖安装及编译过程。 ... [详细]
  • Django与Python及其他Web框架的对比
    本文详细介绍了Django与其他Python Web框架(如Flask和Tornado)的区别,并探讨了Django的基本使用方法及与其他语言(如PHP)的比较。 ... [详细]
  • window下的python安装插件,Go语言社区,Golang程序员人脉社 ... [详细]
  • 第二十五天接口、多态
    1.java是面向对象的语言。设计模式:接口接口类是从java里衍生出来的,不是python原生支持的主要用于继承里多继承抽象类是python原生支持的主要用于继承里的单继承但是接 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 本文探讨了Linux环境下线程私有数据(Thread-Specific Data, TSD)的概念及其重要性,介绍了如何通过TSD技术避免多线程间全局变量冲突的问题,并提供了具体的实现方法和示例代码。 ... [详细]
  • 2019年独角兽企业招聘Python工程师标准课程概览
    本文详细介绍了2019年独角兽企业在招聘Python工程师时的标准课程内容,包括Shell脚本中的逻辑判断、文件属性判断、if语句的特殊用法及case语句的应用。 ... [详细]
  • 本文探讨了使用Python实现监控信息收集的方法,涵盖从基础的日志记录到复杂的系统运维解决方案,旨在帮助开发者和运维人员提升工作效率。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • binlog2sql,你该知道的数据恢复工具
    binlog2sql,你该知道的数据恢复工具 ... [详细]
  • 如何在您的计算机上配置Python和PyCharm开发环境
    本文详细介绍了在Windows 10系统上配置Python和PyCharm开发环境的步骤。内容包括Python的安装与卸载、PyCharm的安装与卸载,以及如何在Windows 10中通过双击安装文件“python-3.7.2-amd64.exe”来完成Python的安装。此外,还提供了关于环境变量配置和基本设置的实用建议,帮助用户快速搭建高效的开发环境。 ... [详细]
  • 在重新安装Ubuntu并配置Django和PyCharm后,忘记测试MySQL连接,导致在后续配置过程中遇到错误:ERROR 2003 (HY000) - 无法连接到本地服务器 ‘127.0.0.1’ (111)。本文将详细介绍该错误的原因及解决步骤,帮助用户快速恢复MySQL服务的正常运行。我们将从检查网络配置、验证MySQL服务状态、配置防火墙规则等方面入手,提供全面的故障排除指南。 ... [详细]
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社区 版权所有