Python Web应用程序入门——Django(windows版)(一)

本次学习参考了《Python编程从入门到实践》
进入正题

1、什么是Django

一个可以使Web开发工作愉快并且高效的Web开发框架。 使用Django,使你能够以最小的代价构建和维护高质量的Web应用。由于先前没有学过任何Web框架,我把django 的理解成一个小型服务器的python web框架。

2、学习心得

书籍方面,讲的很好很好,但版本原因,本书使用的例子是django 1.1.0版本的,很老的版本,当时的django还不成熟,有些功能在现在最新的版本下一句被去除,所以有些地方不是完全正确的,我也通过一些整理,把学习的心得整理了一下。


在本文,你将学习如何使用Django来开发一个名为“学习笔记”的项目,这是一个在线日志系统,能够让你记录所学习的内容。

一、环境

本文作者环境:python3.6.8、Windows10、Django1.11

1.1建立虚拟环境

要使用Django,首先要建立一个虚拟工作环境。虚拟环境是系统的一个位置,你可以在其中安装包,并将其与其他Python包隔离。
为此项目新建一个目录,命名为learning_log,切换到这个目录,并在其中打开cmd,使用如下命令来创建虚拟环境:pip -m venv ll_env这里运行了模块venv,使用它来创建一个名为 ll_env 的虚拟环境。

1.2激活虚拟环境

建立虚拟环境后,使用下面的命令激活它:ll_env\Scripts\activate
环境处于激活状态时,环境名将包含在括号内,如图:
在这里插入图片描述
要停止使用虚拟环境,可以执行命令deactivate或直接关闭cmd。

1.3安装Django

创建并激活虚拟环境后,可以开始安装Django了(本文使用1.11版本),在虚拟环境中运行如下代码:
pip install Django==1.11安装成功后,会提示 Successfully installed Django-1.11…

二、创建项目

2.1在Django中创建项目

在虚拟环境激活的情况下,执行以下命令来创建一个新项目:
django-admin.py startproject learning_log .这个命令末尾的句点让新项目使用合适的目录结构。
运行完成后Django创建了一个名为learning_log的目录,它还创建了一个manage.py文件。
目录learning_log包含四个文件,其中最重要的是 settings.py、urls.py和wsgi.py。

2.2创建数据库

Django将大部分与项目相关的信息存储在数据库中,因此我们需要创建一个供Django使用的数据库。请在虚拟环境激活的情况下执行以下命令:python manage.py migrate
首次执行命令时,我们将确保数据库与项目的当前状态匹配,在执行此命令后,Django将创建一个新文件——db.sqlite3。

2.3查看项目

为了查看Django是否正确的创建了项目,可以执行以下命令:python manage.py runserver
在这里插入图片描述
上图红色区域为查看网址,打开任意Web浏览器,输入上述网址,你会看到如下页面:
在这里插入图片描述

注意:如果出现错误消息 “That port is already in use”(指定的窗口已经被占用),请执行命令:
python manage.py runserver 8001,让Django使用另一个端口。

三、创建应用程序

Django项目有一系列应用程序组成,它们协同工作,让项目成为一个整体。
当前,在前面打开的终端窗口中应该还运行着renserver。请再打开一个终端窗口(cmd)。
激活虚拟环境,执行以下命令:source ll_env/bin/activite

python manage.py stratapp learning_logs

3.1定义模型

打开文件models.py,看看它当前包含的内容,并输入以下内容:

class Topic(models.Model):
    """用户学习的主题"""
    text = models.CharField(max_length = 200)
    date_added = models.DateTimeField(auto_now_add=True)

    def __str__(self):
        '''返回模型的字符串展示'''
        return self.text

我们创建了一个名为 Topic的类,它只有两个属性:text和date_added
属性text是由字符或文本组成的数据,在这里用来存储主题名。
属性date_added是记录日期和时间数据,让用户创建新主题可以自动设置成当前日期和时间。

3.2激活模型

打开settings.py(它位于目录learning_log/learning_log中),找到以下函数并添加内容:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    
    #我的应用
    'learning_logs',
]

其中 我的应用 为自己添加的内容,即在INSTALLED_APPS中添加了'learning_logs',
接下来,需要让Django修改数据库,使其能够存储于模型Topic相关的信息。为此,执行以下命令:

python manage.py makemigrations learning_logs

然后执行:python manage.py migrate
每当需要修改“学习笔记”管理的数据时,都要采取以下三个步骤:修改models.py、对learning_logs调用makemigrations、让Django迁移项目。

3.3创建超级用户

在打开的虚拟环境中执行以下命令:python manage.py createsuperuser
执行完成后如下图
在这里插入图片描述
需要注意,超级用户的密码在输入时是不显示的,只需要输入两次相同的密码便可以成功创建超级用户。

3.4向管理网站注册模型

Django自动在管理网站中添加了一些模型,如User和Group,但对于我们自己创建的模型,必须手动注册。
我们创建learning_logs时,Django在models.py所在目录中创建了一个名为admin.py的文件,为向网站注册Topic,我们需要在admin.py中输入以下代码:

from learning_logs import  Topic

admin.site.register(Topic)

这些代码导入我们要注册的模型Topic,再使用admin.site.register()让Django通过网站管理我们的模型。
使用超级用户账户访问管理网站:http://127.0.0.1:8000/admin/。你将看到类似于下图的屏幕
在这里插入图片描述

3.5模型Entry

模型Entry是我们需要定义的另一个模型,同模型Topic一样。

①定义模型Entry
打开文件models.py,看看它当前包含的内容,并输入以下内容:

class Entry(models.Model):
    """学到的有关某个主题的具体知识"""
    topic = models.ForeignKey(Topic,on_delete = models.CASCADE)
    text = models.TextField()
    date_added = models.DateTimeField(auto_now_add = True)

    class Meta:
        verbose_name_plural = 'entries'
    def __str__(self):
        """返回模型的字符串表示"""
        return self.text[:50] + "..."

②迁移模型Entry
执行以下命令:python manage.py makemigrations learning_logs

python manage.py migrate

③向网站注册Entry
我们需要将admin.py修改成类似于下面这样:

from learning_logs import  Topic,Entry  #(在原本位置添加了Entry)
admin.site.register(Topic)
admin.site.register(Entry)   #添加了Entry模型

3.6添加主题

返回http://127.0.0.1:8000/admin/你将看到learning_logs下面列出了Entries。单击Entries的Add链接,你将看到一个下拉列表。从下拉列表中选择Chess,并添加几个条目。点Save,就保存了刚刚创建的条目。
下面是我添加的条目:
在这里插入图片描述

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值