前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Django简单实例

Django简单实例

作者头像
不断折腾
发布2019-09-23 10:54:35
1.1K0
发布2019-09-23 10:54:35
举报
简单描述一下我们要完成的效果:

我们在浏览器中显示127.0.0.1:8000/calssinfo

会显示我们的班级名:

web开发一班

web开发二班

web开发三班

可以点击我们的web开发一班,进入之后连接变为127.0.0.1:8000/calssinfo/1

并且显示软件一班人的名字。

全部步骤

创建一个项目

1、在虚拟环境中创建一个项目:

如何创建虚拟环境就不说了,可以查看昨天的文章:连接

运行:django-admin startproject test2,

创建一个test2项目。

2、创建一个应用(需要切换到test2文件夹下)

python manage.py startapp student

3、用pycharm打开

4、注册应用

打开settings.py文件,在INSTALLED_APPS中添加student。

5、打开models.py来创建我们的数据库,写上:

# 班级表

class classinfo(models.Model):

classname = models.CharField()

# 学生表

class stuinfo(models.Model):

# 名字

stuname = models.CharField(max_length=20)

# 年龄 非负整数类型

stuage = models.PositiveSmallIntegerField()

# 性别

stusex = models.CharField(default='男')

# 班级id 外键班级表

classid = models.ForeignKey("classinfo")

# 上面的表都不需要写id,在帮我们生成表的时候,会自动生成id

写完上面的models,我们需要生成一个表,分两步

第一步:生成迁移文件,python manage.py makemigrations

第二部:生成表,python manage.py migrate

6、添加数据:

6.1由于这里运用的是sqlite数据库,我们没学过,不会,我们可以在管理员页面添加。

配置管理员页面。

修改setting文件:

LANGUAGE_CODE='zh-hans'

TIME_ZONE = 'Asia/Shanghai'

6.2 添加管理员用户

执行命令:python manage.py createsuperuser

6.3 在admin.py中添加对classinfo表和stuinfo表的应用。

6.4 重写models中类的__str__方法。

6.5 启动项目,添加数据(这里数据随便添加)

我在classinfo表中添加了:

web开发一班,web开发二班,web开发三班

在stuinfo表中添加了两个一班的,连个二班的,三班没有添加。

7、添加templates模板

创建一个templates,在templates文件夹下创建一个stuinfo文件夹

在stuinfo文件夹下创建classinfo.html和stuinfo.html文件

7.1 在setting.py中配置模本路径:

'DIRS':[os.path.join(BASE_DIR,'templates')]

7.3 在classinf.html中body中写上:

<h1>全部班级:</h1>

在stuinfo.html中body中写上:

<h1>该班级学生:</h1>

8、添加理由设置

在test2下的urls.py中添加:

url(r'^', include('student.urls')),

8.1 在student 下创建 urls.py文件

from django.conf.urls import url

from student import views

urlpatterns = [

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

url(r'^classinfo/(\d+)', views.stuinfo),

]

9、视图添加

from student.models import classinfo

def show_classname(request):

c = classinfo.objects.all()

return render(request, 'student/classinfo.html', {'classinfo': c})

def show_stuinfo(request, cid):

c = classinfo.objects.get(id=cid)

s = c.stuinfo_set.all()

return render(request, 'student/stuinfo.html', {'classinfo': c, 'stuinfo': s})

10、修改模板页面

修改classinfo.html:

<ul>

{% for i in classinfo %}

<li> <a href="/classinfo/{{ i.id }}">{{ i.classname }}</a></li>

{% endfor %}

</ul>

修改stuinfo.html:

<h3>{{ classinfo.classname }}</h3>

<table>

{% for foo in stuinfo %}

<tr>

<td>

{{ foo.stuname }}

</td>

<td>

{{ foo.stuage }}

</td>

<td>

{{ foo.stusex }}

</td>

</td>

</tr>

{% empty %}

该班级没有人

{% endfor %}

</table>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 python入门到放弃 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档