本文实例讲述了创建django项目的方法。分享给大家供大家参考,具体如下:
创建django项目
创建一个hellodjango项目
github地址:https://github.com/liangdongchang/hellodjango.git
1、在linux命令窗口终端下
-
创建django项目
123django
-
admin.py startproject hellodjango
sudo apt install tree
tree hellodjango
/
2、在pycharm中创建
file->new project->dhango
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,点击,在命令窗口中输入:
1
|
python manage.py runserver |
在浏览器输入服务器地址:http://127.0.0.1:8000/,可以看到服务器已经启动,按ctrl+c可以关闭服务器。
5、创建子应用
在命令窗口中输入:
1
|
python manage.py startapp myapp |
myapp结构如下:
-
应用目录结构
- _init_.py:其中暂无内容,使得app成为一个包
- admin.py:管理站点模型的声明文件,默认为空
- apps.py:应用信息定义文件,在其中生成了appconfig,该类用于定义应用名等数据
- models.py:添加模型层数据类文件
- views.py:定义url相应函数(路由规则)
- migrations包:自动生成,数据迁移文件
- tests.py:测试代码文件
6、注册子应用
在工程目录的settings.py中注册应用
7、 定义数据模型(models)
1、定义班级类
在myapp目录下的models.py中插入如下代码:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
# 班级类 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、定义学生类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# 学生类 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参数的各个值的含义:
1
2
3
4
5
6
7
8
9
10
11
|
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、数据迁移
-
迁移的概念: 就是将模型映射到数据库的过程
-
生成迁移
1python manage.py makemigrations
-
执行迁移(在myapp下的migrations包中)
1python manage.py migrate
-
迁移过后,框架为我们自动生成了库表,django默认自带的数据库是sqlite数据库;
-
数据库文件生成路径为工程根目录下的db.sqlite3;
- 生成的数据表结构如图
-
给数据库添加数据:
班级表:
学生表:
9、创建页面(templates)
- 修改hellodjango下的settings.py中的模板配置
-
修改settings.py中的模板配置中的静态资源配置
12345678910# 静态文件访问路由
static_url
=
'/static/'
# 静态文件存储目录:根目录/static/
staticfiles_dirs
=
[
os.path.join(base_dir,
'static'
),
]
-
创建【根目录/static/img/】目录并放入一张wolf.jpg图片
-
创建templates目录并在其中创建wolf.html
1234567891011121314<!doctype html>
<html lang
=
"en"
>
<head>
<meta charset
=
"utf-8"
>
<title>忧伤的狼<
/
title>
<
/
head>
<body>
{
# 加载静态资源 #}
{
%
load static
%
}
{
# 加载图片位置 #}
<img src
=
"{% static 'img/wolf.jpg' %}"
alt
=
"我忧伤的眼神"
>
<
/
body>
<
/
html>
10、定义路由映射(urls)
-
在hellodjango下的urls.py中插入如下代码
1234567891011from
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中插入如下代码:
1234567# http://127.0.0.1:8000/wolf/
def
wolf(request):
# 渲染页面并呈现给用户
return
render(request,
'wolf.html'
)
12、运行项目
终端执行如下命令中的一条
1
2
3
|
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、访问测试
[参考网址]:http://www.zzvips.com/article/175046.html
希望本文所述对大家基于django框架的python程序设计有所帮助。
原文链接:https://blog.csdn.net/lm_is_dc/article/details/80412633