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/.此时将看到以下界面:
注:若出现错误消息“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编程。
下一篇: C#+winform登陆界面案例