试验一个django项目从零开始的记录(project==‘项目’。 app==‘应用’)p2

(续前)

在这里插入图片描述7d上图–点击add(添加),给模型Blog2(使用django默认的sqlite3数据库)添加几篇文章,用于后面的测试。

在这里插入图片描述7e上图–打开添加文章的页面加入内容后保存

在这里插入图片描述7f上图–暂时添加这几篇。要继续添加的话,可以点击箭头指向的按钮。

7、给‘管理后台’添加一些功能

在这里插入图片描述1a上图–用vi 打开文件admin_py

在这里插入图片描述1b上图–修改“/var/www/my/app2/”目录下的admin.py文件。

在这里插入图片描述1c上图–与前面7f图相比,‘后台管理’页面出现了一些变化。

8、编写视图文件views.py

在这里插入图片描述
1a上图–在‘应用’app2目录下,用vi编辑器打开views.py文件。编写‘视图views.py文件里有关函数。其各个‘函数/功能’的作用是根据用户点击urls产生的request(请求)、提取相应的数据/内容、配上相应的模板(html文件),返回给客户浏览器显示出来…

在这里插入图片描述
1b上图–这是views.py文件初始状态。

在这里插入图片描述1c上图–编写后的views.py。

9、编写模板文件(templates)。就是.html文件

在这里插入图片描述1a上图–按照django常用的默认方式,在‘应用’app2目录下,建立需要用到的模板目录templates和其下与‘应用同名的’子目录app2。如图。

在这里插入图片描述2a上图–在templates目录下创建base.html文件。所谓模板就是带有django框架的html文件。路径是…/my/app2/templates/base.html,以及header.html页面头部和footer.html页面底部…

在这里插入图片描述2b上图–这是基础模板base.html

在这里插入图片描述2c上图–这是header.html

在这里插入图片描述2d上图–这是footer.html

在这里插入图片描述
3a上图–在templates/子目录下再创建一个子目录app2(与本‘应用’同名的)。并在其下创建title.html文件,作为网站首页;然后创建content.html文件,作为显示文章内容的页面。如图。
注:ubuntu-Linux创建目录的命令:mkdir 目录名;创建文件的命令:vi 文件名filename,会进入vi文本编辑器…;或者touch 文件名filename(图2b),直接创建文件,以后需要撰写、编辑时可以用vi等工具打开…进行这些操作可能经常遇到权限问题,挺折腾的,好像是ubuntu-linux这类操作系统的特点。ls 命令显示目录内的文件列表。

在这里插入图片描述3b上图–这是title.html

在这里插入图片描述3c上图–这是content.html

10、分别修改和创建项目my下、以及‘应用’app2下的两个urls.py文件

在这里插入图片描述
1a上图–打开项目‘my’下的管理文件子目录my(这是创建项目时django自建的子目录【与项目同名】)和urls.py文件,进行修改。

在这里插入图片描述1b上图–在#0位置增加了include。在#1、#2增加两行,把‘应用’app2的urls.py包含进来。#1、#2都是匹配到title.html。#1是把网址或IP根目录指向‘应用’app2目录下的urls模块;#2是在网址加上‘应用名’app2/后也指向urls模块。

在这里插入图片描述
2a上图–在‘应用’目录app2之下再创建一个urls.py文件,以配置本‘应用’app2子目录下的urls。

在这里插入图片描述
2b上图–打开‘应用’app2子目录下的urls.py。
在这里插入图片描述2c上图–对‘应用’app2目录下urls.py文件的编写。如图。第二个参数是指向views.py文件里的函数,由函数/‘方法’获取数据和相应的模板并结合之后显示到用户的浏览器。

11、把css、js等文件复制到static目录下

在这里插入图片描述
1a上图–在‘应用’目录app2之下建立子目录static,用于存放css、javascript和图像等等静态文件。

在这里插入图片描述2a上图–通过浏览器打开bootstrap网站下载bootstrap-3.3.7-dist.zip并解压出来(这个操作跟windows基本一样)。

在这里插入图片描述2b上图–用图中的命令进入它们所在目录(文件夹),用拷贝命令及参数(-R)把其子目录和文件全体复制到本项目相应的目录下(/var/www/my/app2/static/)。

在这里插入图片描述2c上图–现在用tree命令查看到,所有子目录及文件都已经复制过来。注意:如果目标子目录下有同名的子目录和同名文件,将会被覆盖。

12、网站显示效果

在这里插入图片描述1a上图–首页

在这里插入图片描述1b上图–文章显示页

13、模拟‘发布/部署’网站

上面网站显示的页面是利用django自带的web服务(runserver)的输出,是处于django的所谓开发状态(in development)。
开发完成后,需要发布或部署到公开域名或IP地址,进入所谓‘生产/产品/成品/实用’状态(in production)。这这之后可以继续扩充、修改…

在这里插入图片描述1a上图–打开终端用 ifconfig 命令查看本机IP地址。提示命令不存在,可以安装。依照提示安装。

在这里插入图片描述1b上图–查到路由器分配给本机在局域网的网址是192.168.1.10。
在这里插入图片描述1c上图–在virtualbox虚拟机有时候查到上面这种inet地址。那么按下面2个图进行。点击虚拟机上端一行的**‘控制’-‘设置’**可以打开以下页面按图设置。

在这里插入图片描述1d上图–把连接方式修改成下面1f图的选项–
在这里插入图片描述1f上图–之后回到终端再用命令 ifconfig查询就可以(也可能需要重启一下虚拟机)。
在这里插入图片描述2a上图–打开‘项目’目录/管理文件子目录下的settings.py即:/var/www/my/my/settings.py。找到如图的两项。

在这里插入图片描述
2b上图–修改settings.py后,如图。列表框中可以列出多个网址或/和IP,记得加引号和逗号。
这时原先正常显示网站的本机地址127.0.0.1:8000(如果没有加入到ALLOWED_HOSTS列表中的话),就不能正常使用了,显示‘bad request (400)’。django方面的设置事项先到这里。

13.1、对apache2做相关设置

常用命令(1-3启动/重启及关闭apache2。4-6启动或停止.conf文件):

  1. sudo service apache2 restart

  2. sudo service apache2 stop

  3. sudo systemctl reload apache2

  4. sudo a2ensite test.conf

  5. sudo a2dissite test.conf

  6. sudo a2enmod wsgi 检测有没有安装 libapache2-mod-wsgi-py3
    在这里插入图片描述 3a上图–输入192.168.1.10,可以看到,显示的是apache2的默认页。如本文第一部分开头指出,这个页面的位置和名称是:/var/www/html/index.html。

在这里插入图片描述3b上图–需要设置的apache2的文件所在目录:/etc/apache2/sites-available/。需要对该目录下的文件000-default.conf进行修改。为了以后方便,保留原文件,复制其内容到一份新命名为app2.con的文件中。以后只对app2.conf操作即可。

在这里插入图片描述3c上图–打开app2.conf,看到其原先的内容(与000-default.conf相同)。用命令vi app2.conf打开。如果提示权限不够,就在命令前加上,sudo。要求口令的话,输入即可。

在这里插入图片描述3d上图–修改app2.conf,第13-20行是对原文件所作的修改和增加。(vim显示行数的命令:1、esc 2、shift+: 3、set nu)

在这里插入图片描述3e上图–用命令sudo a2dissite 000-default.conf停止 000-default.conf文件。用命令 sudo a2ensite app2.conf 激活app2.cnf文件。此处遇到无法启动apache2之故障。用页面提示的 systemctl status apache2.service 命令和 jounalctl -xe 命令查询,根据得到的信息,猜测可能是自己进行修改和添加的每行后面加了#符号和注解文字引起。于是把这些符号及文字删掉…

在这里插入图片描述3f上图–删掉后再用命令sudo service apache2 restart 和命令 sudo systemctl reload apache2 启动apache2就正常了。在ubuntu终端输入命令后,出现新命令提示符,就是运行正常。

在这里插入图片描述3g上图–不启动django自带的web服务器(runserver)。直接地址栏输入192.168.1.10访问。现在是通过apache2的网络服务。已经可以正常访问。如果是租用或购买的外部服务器和公开IP地址或域名的话,就是已经发布/部署为‘生产/产品’(in production)状态,提供网络信息服务了。但是页面的版式不正常。

在这里插入图片描述3h上图–在app2.cnf中添加 Alias /static/ /var/www/my/app2/static/ (第20行)。保存退出。重新启动apache2。

在这里插入图片描述3j上图–现在首页和文章页的样式正常了。

在这里插入图片描述4a上图–但是后台管理页面还是不正常。后台管理页面用的是django自带的版式。

在这里插入图片描述4b上图–在my/my/settings.py文件底部,static_url=行的下面增加一行:static_root=“自己static目录”。如图。

在这里插入图片描述4c上图–用命令 python mange.py colletstatic 把所有static子目录及文件拷到设定目录下。后台登录页面样式正常了。下图。
在这里插入图片描述4d上图–

在这里插入图片描述5a上图–但是登录后出现server error(500)页面。

在这里插入图片描述5b上图–将项目my所有者和所属组均更改为www-data

在这里插入图片描述5c上图–更改后,后台管理页面已经正常显示
在这里插入图片描述5d上图–点击箭头指向的‘增加BLOG2’按钮,添加新文章。

在这里插入图片描述5e上图–箭头所指,为新添加的文章。

在这里插入图片描述

5f上图–回到网站首页。这是‘部署/产品/生产’(in production)状态。没有启动django自带测试用的runserver服务器。

本文结束。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值