Django入门,建立虚拟环境、安装Django、创建项目数据库

Django入门

说起编写Web应用程序,首先想到的就是JavaWeb。现在了解下使用Python编写Web应用程序。

Django是一个Web框架——一套用于帮助开发交互式网站的工具。Django能够响应网页请求,还能让我们轻松地读写数据库、管理用户等。

建立项目

建立项目时,首先需要以规范的方式对项目进行描述,在建立虚拟环境,以便在其中创建项目。

建立虚拟环境

要使用Django,首先需要建立一个虚拟工作环境。虚拟工作环境是系统的一个位置,可以在其中安装包,并将其与其他Python包隔离。

为创建一个新的目录,将其命名为learning_log,再在终端切换到这个目录,并创建一个虚拟环境。若使用的是Python3,便可使用如下命令去创建。

E:\>cd E:\Users\Administrator\PycharmProjects\learning_log

E:\Users\Administrator\PycharmProjects\learning_log>python -m venv ll_env

这里使用模块venv创建了一个名为ll_env的虚拟环境。

激活虚拟环境

建立虚拟环境后,需要激活它才能使用:

# 这是windows系统中的激活方法,其他系统不同
E:\Users\Administrator\PycharmProjects\learning_log>ll_env\Scripts\activate
(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>

此时可以看到环境名包含在括号里。在这种情况下,可以在环境中安装包,或使用已经安装过的包。在ll_env中安装的包仅在该环境处于激活状态下才可用。

要停止使用虚拟环境,可执行命令”deactivate”

安装Django

创建并激活虚拟环境后,就可安装Django了,Django也是仅在虚拟环境处于活动状态时才可用。

# 下载文件很小,但速度较慢
# 若初次使用pip,可先查阅相关资料熟悉下使用方法,之前的文章也有提到过
(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>pip install Django

在Django中创建项目

在依然处于活动下的虚拟环境中,使用如下命令创建一个新项目:

(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>django-admin.py startproject learning_log .

接着可使用命令’dir’在终端查看该项目下的目录,或者直接在pycharm编译器,文件中查看。
注:千万不要忘记,后面一个句点,都则部署应用程序时将遇到一些问题。如果忘记添加,就将创建的文件和文件夹删除(ll_env)除外,重新运行之前的命令。

learning_log文件夹里包含了几个比较重要的文件。其中settings.py指定Django如何与系统交互以及如何管理项目;文件url.py告诉Django应创建哪些网页来响应浏览器请求;文件wsgi.py帮助Django提供它创建的文件。

创建数据库

Django将大部分与项目相关的信息都会存储在数据库里,因此需要创建一个供Django使用的数据库。如下所示,我们在处于活动虚拟环境中的情况下执行命令:

(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py migrate
(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>dir

在这里将修改数据库称为迁移数据库。首次执行命令migrate时,将让Django确保数据库与项目的当前状态匹配。在SQLite的新项目中首次使用这个命令时,Django将新建一个数据库。

查看项目

下面来核实下是否正确创建了项目。重新打开一个终端,执行runserver命令。
这里写图片描述
Django启动了一个服务器,让我们可以查看系统中的项目,了解他们的工作情况。当在浏览器中输入URL请求网页时,Django做出响应。
现在打开一款浏览器,并输入URL:http://localhost:8000/;或http://127.0.0.1:8000/.此时将看到以下界面:
ckllq

注:若出现错误消息“This port is already in use”(指定端口已被占用),可以执行python manage.py runserer 8001,让Django使用另一个端口。

创建应用程序

Django项目由一系列应用程序组成,它们协同工作,让项目成为一个整体。暂时创建的一个应用程序,它将完成项目的大部分工作。

在之前打开的终端窗口中切换到manage.py所在的目录,激活该虚拟环境,执行如下命令:
(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py startapp learning_logs

命令startapp appname让Django建立应用程序所需的基础设施。查看项目目录,可以看到其中新增加的一个文件learning_logs。

定义模型

我们做一个“学习笔记”项目。每位用户都需要在学习笔记中创建很多主题,用户输入的每个条目都与特定主题相关联,这些条目将以文本的方式显示。我们还需要存储每个条目的时间戳,以便可以告诉每个条目都是什么时候创建的。

现在打开model.py(在刚创建的learning_logs文件下),对其做如下修改:

#当然可以只增加一个类,先进行测试。这里将Entry模型也写进去了,以后会用到
from django.db import models

# Create your models here.
class Topic(models.Model):
    # 用户学习的主题
    text = models.CharField(max_length=200)
    date_added = models.DateTimeField(auto_now_add = True)
    def __str__(self):
        # 返回模型的字符串表示
        return self.text

class Entry(models.Model):
    # 学到有关某个主题的具体知识
    # 使用外键关联到Topic
    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):
        # 返回模型的字符串表示
        if len(self.text) > 50:
             return self.text[:50] + '…'
        else:
            return self.text

激活模型

要想使用模型,必须让Django将应用程序包含到项目中。为此打开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',
]

接下来需要让Django修改数据库,使其能够存储于模型Topic相关的信息。为此,在终端执行下面的命令:

(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py makemigrations learning_logs
Migrations for 'learning_logs':
  learning_logs\migrations\0001_initial.py
    - Create model Topic

(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, learning_logs, sessions
Running migrations:
  Applying learning_logs.0001_initial... OK

(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>

一切ok。

每当我们需要修改“学习笔记”管理的数据时,都采用了如下单个步骤:修改model.py;对learning.py调用makemigrations;rangDjango迁移项目。

Django管理网站

Django提供了管理网站(admin site)可以让我们轻松地处理模型。网站管理员可使用管理网站,但普通的用户不行。
1. 创建超级用户
Django允许你创建具备所有权限的用户——超级用户。权限决定了用户可执行的操作。按执行下列命令并按提示去创建:

(ll_env) E:\Users\Administrator\PycharmProjects\learning_log>python manage.py createsuperuser
Username (leave blank to use 'tzhou'): solarzhou
Email address:
Password:
Password (again):
Superuser created successfully.

电子邮件字段可空,但密码和用户名必须设定。
2. 向管理网站注册模型
Django将会自动在管理网站中添加了一些模型,如User和Group,但对于我们创建的模型,必须手工注册才行。
打开admin.py文件,添加一些代码。

from django.contrib import admin

# Register your models here.
from learning_logs.models import Topic,Entry

admin.site.register(Topic)
admin.site.register(Entry)

这时可以访问http://127.0.0.1:8000/admin,通过刚才创建的超级用户名和密码进行登录。进去之后可以添加和修改用户和用户名,可以管理刚才定义的模型Topic相关数据。
这里写图片描述
此时便可在learning_logs下添加主题,并为主题添加条目。
这里写图片描述

了解到Django基础知识后,我们便可以对网站进行管理了。接着进一步深入了解PythonWeb编程。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值