热门关键字:
jquery > jquery教程 > jquery教程 > Web应用程序 - Django入门

Web应用程序 - Django入门

377
作者:管理员
发布时间:2021/3/15 14:06:56
评论数:0
转载请自觉注明原文:http://www.jq-school.com/Show.aspx?id=4212
  1.1.1 建立虚拟环境


  虚拟环境 是系统的一个位置, 你可以在其中安装包, 并将其与其他Python包隔离,将项目的库与其他项目分离是有益的。


  为项目新建一个目录, 将其命名为learning_log,使用如下命令来创建虚拟环境:


  python -m venv ll_env


  运行了模块venv , 并使用它来创建一个名为ll_env的虚拟环境,成功创建如下图


  1.1.2 激活虚拟环境


  建立虚拟环境后, 需要使用下面的命令激活它:


  source ll_env/bin/activate


  成功激活如下图:


  1.1.3 安装Django


  在虚拟环境处于活动状态时安装Django(以下无特殊说明,均在虚拟环境处于活动状态)


  pip install Django


  1.1.4 在Django中创建项目


  django-admin.py startproject learning_log .


  注意:千万别忘了这个句点(英文输入法), 否则部署应用程序时将遭遇一些配置问题。 如果忘记了这个句点, 就将创建的文件和文件夹删除(ll_env除外) , 再重新运行这个命令。


  #文件名说明settings.py指定Django如何与你的系统交互以及如何管理项目,修改其中一些设置, 并添加一些设置urls.py告诉Django应创建哪些网页来响应浏览器请求wsgi.py帮助Django提供它创建的文件, 这个文件名是web server gateway interface(Web服务器网关接口 ) 的首字母缩写。


  1.1.5 创建数据库


  python manage.py migrate


  1.1.6 查看项目


  核实Django是否正确地创建了项目。 为此, 可执行命令runserver


  python manage.py runserver


  打开一款Web浏览器, 并输入URL:  如果这不管用, 请输入


  如果出现错误消息“That port is already in use”(指定端口已被占用) , 请执行命令python manage.py runserver 8001 , 让Diango使用另一个端口; 如果这个端口也不可用, 请不断执行上述命令, 并逐渐增大其中的端口号, 直到找到可用的端口。


  阶段代码:GitHub learning_log_1.2_创建应用程序


  不包括虚拟环境ll_env文件夹下文件


  Django项目 由一系列应用程序组成, 它们协同工作, 让项目成为一个整体。


  当前, 在前面打开的终端窗口中应该还运行着runserver 。 请再打开一个终端窗口(或标签页) , 并切换到manage.py所在的目录。 激活该虚拟环境, 再执行命令startapp :


  python manage.py startapp learning_logs


  命令startapp appname 让Django建立创建应用程序所需的基础设施。 新增了一个文件夹learning_logs,其中最重要的文件是models.py、 admin.py和views.py。使用models.py来定义要在应用程序中管理的数据


  1.2.1 定义模型


  想想涉及的数据。 每位用户都需要在学习笔记中创建很多主题。 用户输入的每个条目都与特定主题相关联, 这些条目将以文本的方式显示。 还需要存储每个条目的时间戳, 以便能够告诉用户各个条目都是什么时候创建的


  models.py


  初始


  模型告诉Django如何处理应用程序中存储的数据。 在代码层面, 模型就是一个类, 包含属性和方法。


  models.py


  1.2.2 激活模型


  要使用模型, 必须让Django将应用程序包含到项目中。 为此, 打开settings.py(它位于目录learning_log/learning_log中) , 你将看到一个这样的片段, 即告诉Django哪些应用程序安装在项目中:


  settings.py


  初始


  注Django版本差异,书中显示是一个元组。将 INSTALLED_APPS 修改如下


  settings.py


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


  python manage.py makemigrations learning_logs


  命令makemigrations 让Django确定该如何修改数据库, 使其能够存储与定义的新模型相关联的数据。 输出表明Django创建了一个名为0001_initial.py的迁移文件, 这个文件将在数据库中为模型Topic 创建一个表。


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


  python manage.py migrate


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


  可以查看db.sqlite3如下图,models.py中Topic 的类数据


  1.2.3 Django管理网站


  1. 创建超级用户


  为应用程序定义模型时, Django提供的管理网站(admin site) 让你能够轻松地处理模型。


  Django允许你创建具备所有权限的用户——超级用户。 权限决定了用户可执行的操作。


  为在Django中创建超级用户, 请执行下面的命令并按提示做:


  python manage.py createsuperuser


  2. 向管理网站注册模型


  Django自动在管理网站中添加了一些模型, 如User 和Group , 但对于创建的模型, 必须手工进行注册。


  创建应用程序learning_logs 时, Django在models.py所在的目录中创建了一个名为admin.py的文件:


  admin.py


  初始


  为向管理网站注册Topic , 请输入下面的代码:


  admin.py


  使用超级用户账户访问管理网站: 访问 , 并输入刚创建的超级用户的用户名和密码


  确认在终端窗口中运行着Django服务器,如果没有, 请激活虚拟环境, 并执行命令python manage.py runserver 。


  可以在Topics中add新的Topic,创建 Chess 和 Rock Climbing


  1.2.4 定义模型Entry


  要记录学到的国际象棋和攀岩知识, 需要为用户可在学习笔记中添加的条目定义模型。 每个条目都与特定主题相关联, 这种关系被称为多对一关系, 即多个条目可关联到同一个主题。


  在models.py添加Entry类代码:


  models.py


  1.2.5 迁移模型Entry


  python manage.py makemigrations learning_logs


  python manage.py migrate


  生成了一个新的迁移文件——0002_entry.py, 它告诉Django如何修改数据库, 使其能够存储与模型Entry 相关的信息。


  1.2.6 向管理网站注册Entry


  修改 admin.py


  admin.py


  返回到 , 你将看到learning_logs下列出了Entries。


  可以向对应的Topic中添加条目


  1.2.7 Django shell


  输入一些数据后, 就可通过交互式终端会话以编程方式查看这些数据了。 这种交互式环境称为Django shell


  python manage.py shell


  阶段代码:GitHub learning_log_1.3_ 创建网页: 学习笔记主页


  不包括虚拟环境ll_env文件夹下文件


  使用Django创建网页的过程通常分三个阶段: 定义URL、 编写视图和编写模板。 urls -> views -> html 添加网页步骤。


  定义URL:让Django知道如何将浏览器请求与网站URL匹配, 以确定返回哪个网页。


  编写视图:每个URL都被映射到特定的视图 ——视图函数获取并处理网页所需的数据。


  编写模板:生成浏览器能够理解的网页。


  1.3.1 映射URL


  打开项目主文件夹learning_log中的文件urls.py, 修改为


  learning_log/urls.py


  默认的urls.py包含在文件夹learning_log中, 现在需要在文件夹learning_logs中创建另一个urls.py文件:(注意关于 Django版本更新,书上的代码需做相应修改)


  learning_logs/urls.py


  1.3.2 编写视图


  视图函数接受请求中的信息, 准备好生成网页所需的数据, 再将这些数据发送给浏览器——这通常是使用定义了网页是什么样的模板实现的。


  learning_logs中的文件views.py是执行命令python manage.py startapp 时自动生成的, 当前其内容如下:


  views.py


  初始


  这个文件只导入了函数render() , 它根据视图提供的数据渲染响应。 下面的代码演示了该如何为主页编写视图:


  views.py


  1.3.3 编写模板


  模板定义了网页的结构。 模板指定了网页是什么样的, 而每当网页被请求时, Django将填入相关的数据。 模板让你能够访问视图提供的任何数据。 主页视图没有提供任何数据, 因此相应的模板非常简单。


  在文件夹learning_logs中新建一个文件夹, 并将其命名为templates。 在文件夹templates中, 再新建一个文件夹, 并将其命名为learning_logs。 这好像有点多余(在文件夹learning_logs中创建了文件夹templates, 又在这个文件夹中创建了文件夹learning_logs) , 但建立了Django能够明确解读的结构, 即便项目很大, 包含很多应用程序亦如此。 在最里面的文件夹learning_logs中, 新建一个文件, 并将其命名为index.html, 再在这个文件中编写如下代码:


  index.html


  HTML教程:可参考runoob HTML 教程- (HTML5 标准)


  请求这个项目的基础URL—— 将看到刚才创建的网页, 而不是默认的Django网页。


  阶段代码:GitHub learning_log_1.4_创建其他网页


  不包括虚拟环境ll_env文件夹下文件


  将创建两个显示数据的网页, 其中一个列出所有的主题, 另一个显示特定主题的所有条目。 对于每个网页, 都将指定URL模式, 编写一个视图函数, 并编写一个模板。 但这样做之前, 先创建一个父模板, 项目中的其他模板都将继承它。


  使用Django创建网页的过程通常分三个阶段: 定义URL、 编写视图和编写模板。 urls -> views -> html 添加网页步骤。




如果您觉得本文的内容对您的学习有所帮助:支付鼓励



关键字:jquery
友荐云推荐