Web应用程序-记Python学习

Python提供了一组开发Web应用程序的卓越工具。Django是一个Web框架——一套用于帮助开发交互式网站的工具。

1.建立项目

1.1 建立虚拟环境

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

1
python -m venv ll_env

1.2安装virtualenv

1
pip install virtualenv

1.3激活虚拟环境

1
source ll_env/bin/activate

这个命令运行ll_env/bin中的脚本activate。环境处于活动状态时,环境名将包含在括号内,在这种情况下,你可以在环境中安装包,并使用已安装的包。你在ll_env中安装的包仅在该环境处于活动状态时才可用。

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

1
deactivate

1.4安装Django

1
pip install Django

1.5在Django中创建项目

在依然处于活动的虚拟环境的情况下(ll_env包含在括号内),执行如下命令来新建一个项目:

1
django-admin startproject learning_log .

1.6创建数据库

Django将大部分与项目相关的信息都存储在数据库中,因此我们需要创建一个供Django使用的数据库。

1
python manage.py migrate

我们将修改数据库称为迁移数据库。首次执行命令migrate时,将让Django确保数据库与项目的当前状态匹配。在使用SQLite(后面将更详细地介绍)的新项目中首次执行这个命令时,Django将新建一个数据库。Django指出它将创建必要的数据库表,用于存储我们将在这个项目(Synchronize unmigrated apps,同步未迁移的应用程序)中使用的信息,再确保数据库结构与当前代码(Apply all migrations,应用所有的迁移)匹配.

1.7查看项目

1
python manage.py runserver

Django启动一个服务器,让你能够查看系统中的项目,了解它们的工作情况。当你在浏览器中输入URL以请求网页时,该Django服务器将进行响应:生成合适的网页,并将其发送给浏览器.

2创建应用程序

Django项目由一系列应用程序组成,它们协同工作,让项目成为一个整体。在前面打开的终端窗口中应该还运行着runserver。请再打开一个终端窗口(或标签页),并切换到manage.py所在的目录。激活该虚拟环境,再执行命令startapp国:

1
2
source ll_env/bin/activate
prython manage.py startapp learning_logs

命令startapp appname让Django建立创建应用程序所需的基础设施。如果现在查看项目目录,将看到其中新增了一个文件夹learning_logs,打开这个文件夹,其中最重要的文件是models.py、admin.py和views.py。我们将使用models.py来定义我们要在应用程序中管理的数据。

2.1定义模型

models.py中定义模型,模型告诉Django如何处理应用程序中存储的数据。在代码层面,模型就是一个类,就像前面讨论的每个类一样,包含属性和方法。

2.2激活模型

要使用模型,必须让Django将应用程序包含到项目中。为此,打开settings.py将创建的应用程序回下到INSTALLED_APPS元组中。

接下来,需要让Django修改数据库,使其能够存储与模型相关的信息:

1
python manage.py makemigrations learning_logs

命令makemigrations让Django确定该如何修改数据库,使其能够存储与我们定义的新模型相关联的数据.

下面来应用这种迁移,让Django替我们修改数据库:

1
python manage.py migrate

2.3Django管理网站

  1. 创建超级用户

Django允许你创建具备所有权限的用户——超级用户,执行下面的命令并按提示完成超级用户的创建:

1
2
3
4
5
6
7
python manage.py createsuperuser

Username (leave blank to use 'ehmatthes'): ll_admin
Email address:
Password:
Password (again):
Superuser created successfully.
  1. 向管理网站注册模型

Django自动在管理网站中添加了一些模型,如User和Group,但对于我们创建的模型,必须手工进行注册。在admin.py文件中导入新增的模型,再使用admin.site.register()让Django通过管理网站管理我们的模型。

1
2
3
4
5
6
7
8
9
10
11
12
def article_detail(request, id):
article = ArticlePost.objects.get(id=id)
# 将markdown语法渲染成html样式
article.body = markdown.markdown(article.body,
extensions=[
# 包含 缩写、表格等常用扩展
'markdown.extensions.extra',
# 语法高亮扩展
'markdown.extensions.codehilite',
])
context = { 'article': article }
return render(request, 'article/detail.html', context)

Web应用程序-记Python学习
http://www.okko.tk/2023/06/13/Web应用程序-记Python学习/
作者
ZhJy
发布于
2023年6月13日
许可协议