Django框架编写第一个Django应用程序——第四部分

在Django中,我们将继续编写第一个项目的代码。这一部分,我们将创建一个简单的 polls 应用程序,它将包括以下几个部分:

  1. 定义模型
  2. 创建管理员用户
  3. 运行迁移
  4. 编写视图
  5. 编写 URL 配置
  6. 创建模板

以下是这些步骤的代码示例:

  1. 定义模型:

polls/models.py 文件中,定义一个 Poll 模型和一个 Choice 模型。




from django.db import models
 
class Poll(models.Model):
    question = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')
 
class Choice(models.Model):
    poll = models.ForeignKey(Poll, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)
  1. 创建管理员用户:

在终端中运行以下命令来创建一个管理员用户。




python manage.py createsuperuser

按照提示输入用户名、邮箱和密码。

  1. 运行迁移:

在终端中运行以下命令来应用数据库迁移。




python manage.py makemigrations polls
python manage.py migrate
  1. 编写视图:

polls/views.py 文件中,编写一个简单的视图来显示 Poll 的详细信息。




from django.http import HttpResponse
from .models import Poll
 
def index(request):
    latest_poll_list = Poll.objects.all().order_by('-pub_date')[:5]
    output = ', '.join([p.question for p in latest_poll_list])
    return HttpResponse(output)
  1. 编写 URL 配置:

polls/urls.py 文件中,编写 URL 配置。




from django.urls import path
from . import views
 
urlpatterns = [
    path('', views.index, name='index'),
]

然后,在项目的 urls.py 文件中包含 polls 的 URL 配置。




from django.urls import include, path
from django.contrib import admin
 
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
]
  1. 创建模板:

polls 应用程序的 templates 目录下创建一个名为 polls/index.html 的模板文件。




<!DOCTYPE html>
<html>
<head>
    <title>Polls</title>
</head>
<body>
    <h1>Polls</h1>
    <ul>
        {% for poll in latest_poll_list %}
        <li>{{ poll.question }}</li>
        {% endfor %}
    </ul>
</body>
</html>

以上代码仅为示例,实际开发中你需要根据自己的需求进行相应的调整。

评论已关闭

推荐阅读

Vue中使用mind-map实现在线思维导图
2024年08月04日
VUE
Web前端最全Vue实现免密登录跳转的方式_vue怎么样不登录返回首页,最强技术实现
2024年08月04日
VUE
vue3 项目搭建教程(基于create-vue,vite,Vite + Vue)
2024年08月04日
VUE
Vue-颜色选择器实现方案——>Vue-Color( 实战*1+ Demo*7)
2024年08月04日
VUE
Vue项目卡顿慢加载?这些优化技巧告诉你!_vue数据多渲染卡顿
2024年08月04日
VUE
vue中的keep-alive详解与应用场景
2024年08月04日
VUE
Vue、React实现excel导出功能(三种实现方式保姆级讲解)
2024年08月04日
vue-office/docx插件实现docx文件预览
2024年08月04日
VUE
java调用js文件的两种方法(支持V8引擎)
2024年08月04日
JavaScript:解决计算精度问题/mathjs/bignumber.js/big.js/decimal.js
2024年08月04日
两周从爬虫小白变大神 _yjs_js_security_passport
2024年08月04日
JS笔记(对象、函数、数组)
2024年08月04日
Markdown.js:强大的纯JavaScript Markdown解析器
2024年08月04日
Vue项目:js模拟点击a标签下载文件并重命名,URL文件地址下载方法、请求接口下载文件方法总结。
2024年08月04日
vue 父组件怎么获取子组件里面的data数据
2024年08月04日
VUE
个人开发实现AI套壳网站快速搭建(Vue+elementUI+SpringBoot)
2024年08月04日
el-table 表格封装并改造实现单元格可编辑
2024年08月04日
none
nodejs环境下创建vue项目、SSH密钥登陆!!!
2024年08月04日
vue+quill+element-ui实现视频、图片上传及缩放保姆级教程,轻松使用富文本
2024年08月04日
【three.js】22. Imported Models导入模型
2024年08月04日