django 搭建一个投票类网站(一)

写在最前,之前零零散散的看过django,但是由于比较杂,学的云里雾里的,所以就停了一段落,但是我最近找到了一个django的书,是李建编著的django入门与实践,于是,打算照着书上的步骤来写好一个网站,希望能在结束后了解并懂得怎么使用django了吧,共勉

话不多说,这本书前面写了很详细的html,js,css,以及python编程基础,我就直接从django部分开始吧

在开始之前一定要安装django

1.创建Django工程

  首先创建一个名为demo的文件,然后在cmd里进入demo目录,输入django-admin startproject mysite。会在demo文件目录下创建一个mysite文件

  注意:

    1.不能创建test作为项目名,因为会跟python内置包冲突,也不能用django,因为会跟django冲突,总之命名时需要注意下名字。

    2.不要将django项目文件代码文件与其他网站项目文件放在一起,可能会将django代码暴露在浏览器中

  创建好的文件目录应该是这样的

  

  在mysite的同级,应该有一个manage.py文件。

2.运行django工程

  在cmd中cd mysite文件,然后输入python manage.py runserver测试是否正确运行,

  

  出现如上图所示就是正常运行了,把上图中的http://127.0.0.1:8000/输入浏览器,应该会跳出成功创建django的信息以及一个小火箭

3.创建polls应用程序

  前面已经成功创建django工程了,然后需要做的是创建应用程序,每一个django应用程序都包含一个python包,使用django-admin和manage.py可以帮助你很快的创建应用文件

  然后我们将应用程序放置在python路径能够识别的地方,这里就和书上一样,放在manage.py同级目录里,在cmd中找到manage.py的同级目录,输入 python manage.py startapp polls创建应用程序polls。

  注意:

    工程和应用程序之间的区别,应用程序才是真正工作的组件,工程是包含网站配置信息和应用程序等的集合,一个工程可以包含多个应用程序,一个应用程序也可以输于多个工程哦

  在这里可以看到这段代码和上面创建项目的代码里有一些不同startproject和startapp,我认为前者就是说创建项目,而后者是创建app,即应用程序,帮助记忆啦

4.开发第一个视图

  只要修改polls目录下的view.py文件就好了,将这段代码复制进去

from django.http import HttpResponse

def index(request):
    return HttpResponse("你好,这里是投票系统")

# Create your views here.

  然后视图成功创建,这里的意思就是返回内容啦,

  但是现在还不能访问,需要在url上添加路由影射,在polls文件中创建urls.py文件,将一下内容复制进去

from django.urls import path
from . import views

urlpatterns = [
    path(‘‘,views.index,name=‘index‘),
]

  提示:

    Path()方法可以接受四个参数,两个必选参数route和view,两个可选参数kwargs和name

  

  然后光有了这个urls文件还不够,还需要返回到根目录下的urls文件,在那里面应用polls/urls.py,修改mysite/urls.py 如下

from django.contrib import admin
from django.urls import include,path

urlpatterns = [
    path(‘polls/‘,include(‘polls.urls‘)),
    path(‘admin/‘, admin.site.urls),
]

  上面代码中的include()方法可以用来引用其他URLconfs(urls.py)。通过合理使用这个方法可以将整个网站中的所有url分配到多个文件,使代码更加简介合理

  提示:

    除了admin.site.urls之外,在任何时候都应该使用include方法应用其他路由模块

  然后,我们的工程就有第一个视图了,虽然不是hello world。重新用runserver命令启动web服务,然后输入http://127.0.0.1:8000/polls/ 就会看到以下界面啦

当然,如果输入index就会出现以下界面,如下图,告诉你可以跳转的还有一个admin,这之后会讲到就是django的后台管理

5.配置mysql数据库

  由于django提供了对mysql的支持,所以不需要做任何额外的工作了,当然,当你没有MySQL或者版本低于5.8建议重装一下,可以看下我的教程https://www.cnblogs.com/afei123/p/11247215.html

  至于为什么低于5.8,建议重装呢,因为django不支持,这个书上没有提,我在配置mysql的时候做了很久才发现的,然后又花了很久去重装mysql。。。。。

  言归正传,在mysite/setting,py文件中设置databases节点,至于为什么,想必做过工程的比较了解,把数据库连接配置好,然后只要调用就可以了,

DATABASES = {
    ‘default‘: {
        ‘ENGINE‘:‘django.db.backends.mysql‘,#mysql数据库支持引擎
        ‘NAME‘:‘数据库名‘,
        ‘USER‘:‘数据库用户名‘,
        ‘PASSWORD‘:‘数据库密码‘,
        ‘HOST‘:‘127.0.0.1‘,#数据库所在的主机名
        ‘PORT‘:‘3306‘,#数据库端口号
    }
}

  这些参数的具体含义,有兴趣的同学可以自己去查一下哦(因为书上写了,而且我觉得不必要。。。)

  数据库配置完之后,开始创建模型,修改polls/models.py文件如下(你们还能直接复制,我可全是照着书打,诶)

from django.db import models
import datetime
from django.utils import timezone

class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField(‘date published‘)

    def was_published_recently(self):
        return self.pub_date >= timezone.now() - datetime.timedalta(days = 1)

    def __str__(self):
        return self.question_text

class Choice(models.Model):
    question = models.ForeignKey(Question, on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)

    votes = models.IntegerField(default = 0)

    def __str__(self):
        return self.choice.choice_text

# Create your models here.

  这段文字其实是为了在数据库创建表使用的,我想不用注释应该也看的明白吧

  然后去修改mysite/setting.py内容,(书上没说,可让我好找)

  找到这两个选项,改成这样,分别对应的是时区和语言。

LANGUAGE_CODE = ‘zh-Hans‘

TIME_ZONE = ‘Asia/Shanghai‘

然后,找到下图位置,把最下面那句加进去,这是为了让django能够识别polls

# Application definition

INSTALLED_APPS = [
    ‘django.contrib.admin‘,
    ‘django.contrib.auth‘,
    ‘django.contrib.contenttypes‘,
    ‘django.contrib.sessions‘,
    ‘django.contrib.messages‘,
    ‘django.contrib.staticfiles‘,
    ‘polls.apps.PollsConfig‘,
]

在polls/apps.py文件内修改

from django.apps import AppConfig

class PollsConfig(AppConfig):
    name = ‘polls‘

然后用命令创建用于生成数据库的python脚本,

python manage.py makemigrations polls,之后再migrations文件目录下会出现类似0001的文件,文件目录如下,

执行命令将django中的数据库更改写入mysql

python manage.py migrate,出现如下即为ok。如果缺少mysqlclient的话,安装下就好了,如果碰巧和我一样安装不了的话,可以看看这个https://www.cnblogs.com/afei123/p/11240182.html

这篇就到此为止了,下一篇再详细的讲一下admin

原文地址:https://www.cnblogs.com/afei123/p/11247681.html

时间: 2024-11-07 19:43:43

django 搭建一个投票类网站(一)的相关文章

学生成绩管理后台第二项任务:初步建模,搭建一个简单的网站

负责人:程琳茹 合伙人:李玉婷 签约员工:闫玉荣 前言:学生成绩管理后台,看起来是一个简单的项目,但是对于我们今后的发展很重要,建设一个管理后台有很多方法,这里我们主要使用Rstudio,在之后的文章中,会详细给出我们小组完成项目的过程与遇到的问题,欢迎大家借鉴,此外,同学们要积极参与讨论. 项目步骤:1.熟悉与安装Rstudio,并且配置好R内部环境. 2.建立好文件所存放的位置与确保文档可以正常使用. 3.搭建一个简单的网站,分别分为server.R端口与ui.R端口. 4.搭建好网站后,插

初学django搭建一个通讯录应用

---恢复内容开始--- django搭建一个通讯录应用 一.环境介绍 window10 64位 Django-1.5.12 python 2.7 Sqlite3 二.基本安装 python2.7安装教程地址:http://jingyan.baidu.com/article/19192ad8399a62e53e5707e0.html Django安装教程地址:http://www.runoob.com/django/django-install.html SQLite3安装教程: 下载地址:ht

利用django创建一个投票网站(三)

创建你的第一个 Django 项目, 第三部分 这一篇从第二部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,并且聚焦于如何创建公用界面--也被称为"视图". 设计哲学 Django 中的视图的概念是「一类具有相同功能和模板的网页的集合」.比如,在一个博客应用中,你可能会创建如下几个视图: 博客首页--展示最近的几项内容. 内容"详情"页--详细展示某项内容. 以年为单位的归档页--展示选中的年份里各个月份创建的内容. 以月为单位的归档页--展示选中的月份里各

利用django创建一个投票网站(五)

创建你的第一个 Django 项目, 第五部分 这一篇从第四部分(en)结尾的地方继续讲起.我们在前几章成功的构建了一个在线投票应用,在这一部分里我们将其创建一些自动化测试. 自动化测试简介 自动化测试是什么? 测试,是用来检查代码正确性的一些简单的程序. 测试在不同的层次中都存在.有些测试只关注某个很小的细节(某个模型的某个方法的返回值是否满足预期?),而另一些测试可能检查对莫个软件的一系列操作(某一用户输入序列是否造成了预期的结果?).其实这和我们在教程的第一部分(zh)里做的并没有什么不同

利用django创建一个投票网站(四)

创建你的第一个 Django 项目, 第四部分 这一篇从第三部分(zh)结尾的地方继续讲起.我们将继续编写投票应用,专注于简单的表单处理并且精简我们的代码. 编写一个简单的表单 让我们更新一下在上一个教程中编写的投票详细页面的模板("polls/detail.html"),让它包含一个 HTML <form>元素: <!--- polls/template/polls/detail.html --> <h1>{{ question.question_

简诉如何搭建一个自己的网站(域名+服务器+tomcat+运行正确网站项目)

准备工作,购买域名+服务器(域名加空间的话,网站运行环境一般只有.net和php,只需要上传网站文件夹到空间,本文暂不讲) 域名和服务器购买推荐购买同一个商家的,至于去哪里买,价格多少,自行百度.建议穷的学生党去腾讯云看看学生1元优惠!(本博主就是用的这个优惠,等下也以腾讯云举例讲解) 域名购买后,往往不能直接使用,需要实名认证后才可以使用(不知道是不是只有.cn的需要,反正基本需要,认证一般2~3天左右,有快有慢,需要认证后解析方可生效! 如下图,准备解析(从上方云产品可以找到域名管理) 进入

.net core 2.0学习记录(一):搭建一个.Net Core网站项目

.Net Core开发可以使用Visual Studio 2017或者Visual Studio Code,下面使用Visual Studio 2017搭建一个.net Core MVC网站项目. 一.新建项目 二.选择 Web应用程序(模型视图控制器) 三.项目结构和之前的比对还是有很大的不同,wwwroot用来存放前端的一些静态资源(css/js/image),以前是通过Nuget来下载前后端包,现在前端包使用Bower下载,后端的包的使用Nuget下载 四.运行 .net core项目调试

快速搭建一个“微视”类短视频 App

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 "爱就像蓝天白云晴空×××,突然暴风雨--"偷偷在上班期间看微视里美丽的×××姐,不巧被老大当场抓包"看来还是给你安排的工作太少了,这样吧,竟然你那么喜欢看微视,那就给你三天时间搭建出类似微视的短视频APP,要搭建不起来,这个月的绩效奖金就取消!"我的天!除了绝望还是绝望!人们常

利用django创建一个投票网站(二)

创建你的第一个 Django 项目, 第二部分 这一篇从第一部分(zh)结尾的地方继续讲起.本节我们将继续写 Web 投票应用,并主要关注 Django 提供的自动生成的管理页面(admin site). 设计哲学 为你的员工和客户创建一个用于添加.修改和删除网站内容的管理页面是一项乏味的工作,而且不需要太多的创造力.因为这些原因,Django 提供完全自动地为模型创建管理接口的功能. Django 产生于一个公众页面和内容发布者页面完全分离的新闻类站点的开发过程中.站点管理人员使用管理系统来添