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

这是在自己电脑上进行的试验一个django项目的过程记录。

依托的平台:PC win10 专业版 64位
虚拟机平台:virtualbox 6.0.8 64位
虚拟机系统:ubuntu 18.04.4 desktop
(查看ubuntu版本[在终端==terminal输入命令]:cat /etc/issue。另一个更多内容的查看命令:cat /proc/version)

1、安装apache2

启动ubuntu,打开终端(组合键 ctrl+alt+t):
在这里插入图片描述

可能用到的命令参考:

  • 更新apt库:sudo apt update
  • 安装指令: sudo apt install apache2
  • 卸载指令: sudo apt remove apache2
  • 启动:sudo service apache2 start
  • 停止:sudo service apache2 stop
  • 重启:sudo service apache2 restart

打开浏览器,输入localhost。
在这里插入图片描述1上图–安装apache2之前在浏览器输入localhost就是上面这样的

在这里插入图片描述2 上图–在终端命令行输入安装apache2的命令

在这里插入图片描述3 上图–按提示输入口令。然后回车。注意:输入口令的时候光标没有什么反应。如果口令不正确,才有提示。

在这里插入图片描述4 上图–键入y然后回车–开始安装

在这里插入图片描述5 上图–安装顺利完成的话,就回到命令行提示符这里。等待新的命令。

在这里插入图片描述6 上图–转到浏览器。刷新或输入localhost。显示如图的apache2的默认页面,则表示安装apache2成功。
apache2会自动在ubuntu建立目录/var/www/html/。上面页面的文件名及所在位置:/var/www/html/index.html

2、安装libapache2-mod-wsgi-py3

在这里插入图片描述上图–安装libapache2-mod-wsgi-py3完成。(软件包: libapache2-mod-wsgi-py3 Python 3 WSGI adapter module for Apache)

3、安装python3-venv。然后用venv创建虚拟环境

在终端命令行提示符位置,输入以下命令:
cd /var/www

有说python3自带venv,可以直接用以下命令:
python3 -m venv venv4 #(venv4 是自建的虚拟环境的名称。随便自己习惯爱好命名)
建立虚拟环境。试试看----
在这里插入图片描述
3a上图–提示权限不够。于是在命令前加上了sudo…
在这里插入图片描述上图–结果是不成功。提示说,在debian/ubuntu系统,需要安装python3-venv。

安装python3-venv----

进入/var/www目录之后,输入以下命令安装python3-venv
sudo apt install python3-venv
在这里插入图片描述1、上图–安装python3-venv

在这里插入图片描述6a、上图–提示无法打开被锁定文件/var/lib/dpkg/lock-front-end。用下面的命令将其删掉即可:
sudo rm /var/lib/dpkg/lock-frontend
然后敲入 y 回车确认继续安装。
在这里插入图片描述
8a、上图–python3-venv安装完成后回到命令行。用ls查看目录下有个venv4目录。估计是前面尝试直接使用
python3 -m venv venv4 #创建自己的虚拟环境venv4的时候产生的目录。经过试验,并不能用。将其删除。见下图----

在这里插入图片描述
10a、上图–将无用的venv4删除

在这里插入图片描述
11、上图–创建自己的虚拟环境 myvenv

在这里插入图片描述
12、上图–又提示权限不够。在命令前面加上 sudo。可能会要求输入口令。照办即可。

在这里插入图片描述
13、上图–创建myvenv成功。用ls查看目录下有了目录 myvenv

在这里插入图片描述
14a、上图–用source命令,运行activate激活并进入虚拟环境。用deactivate退出虚拟环境

4、安装django

在这里插入图片描述1上图–
在这里插入图片描述2s、上图–在过程到安装到pytz,django时,出现红字提示异常:对于某个目录下的文件权限不够。

在这里插入图片描述8t1、上图–用 sudo -s获取临时root权限。但这时所在目录离开了myvenv虚拟环境。需要重新进入myvenv虚拟环境,用以下命令:source myvenv/bin/activate
看命令行的左侧开头出现白色括号里虚拟环境名称(myvenv),表示已经进入虚拟环境了。
再敲入命令:pip install django==2.0 #用 ==2.0 指定django的版本
在这里插入图片描述8t2、上图–安装django成功。进入python看到是3.6版本。用django.get_version()查看django版本是‘2.0’

注:这里用 sudo su 获得root权限也可以。这时也会从虚拟环境退出。所以,获得root权限后,也需要用相关命令重新进入虚拟环境,再安装django。安装完成后,使用ctrl+d组合键退出root)

在(myvenv)root@ubun4-VirtualBox#之后,敲入 python 进入python交互环境,看到python版本是3.6.9 …等等说明。然后出现python命令行提示符 >>>
输入 import django,没有异常提示的话,表明安装成功。可以用命令:
django.get_version() # 查看django版本是‘2.0’。[ also: print(django.VERSION) ]

用exit() 或ctrl+d 退出python交互环境。回到ubuntu 终端命令行。

安装django完成。

5、创建django项目(项目==project)(网站)

使用linux-Ubuntu这类系统经常遇到的提示之一,就是‘权限不够’之类。例如前面安装django的时候。当时解决的办法是临时借用/获得root的权限。加入直接加sudo pip install xx软件包 是不行的,会出现异常/错误并被提示:sudo 没有 pip 这种命令…

解决或避免这种麻烦有若干办法,使用 ‘sudo su…’暂时获得root权限算是一个。更方便的办法可能是把自己加入root组或目录及文件的所属组后修改组的权限;或把自己更改为目录(文件夹)和文件的所有者通常也就具备了更多权限(需要借用root的权限才能做到)。

在Ubuntu(linux)系统里面活动的,被分成三种角色:所有者 (user—u)、组及组成员(group—g)、其它(others—o);还有一个是汇总前三者的名称(all—a)。
通常所有者(user)对自己的文件和目录具有完整权限即读r4、写w2、执行x1 这三项的全部权限==7。其它两者对一个目录或文件经常是只有部分权限。

在这里插入图片描述1上图–用pwd命令查看当前所在的目录;用id、groups命令查看用户ubun4所在的组;用 gpasswd -d 命令把ubun4移出某个所属组(这里是root组)。这里进行了先把ubun4移出root组。在图2里再把它重新加入root组。图2把用户重新加入root组用的是usermod命令(该命令好像没有移出的选项)。也可以用命令 gpasswd -a 添加用户到组。

在这里插入图片描述2上图–把用户ubun4添加到root组。这里usermod 后面的选项 -aG :表示不影响原有组,再附加/添加到一个所属组(这里是重新添加到 root 组)。

在这里插入图片描述3上图–在www目录下用ll(两个L小写)命令查看各目录和文件的权限。
cd … 到上一级用ll命令查看www目录的各角色的权限(图中最下面一行)是drwxr-xr-x,所有者是root:所属组也是root。最开头drwxr-x-r-x的含义是:先忽略字母d,前面的rwx是所有者(user)的权限7,可以读、写、执行;接着的r-x是所属组的权限5,只有读和执行的权限;最后的r-x是其它者权限5,也是只能读和执行。www目录给三方的权限是755。唯所有者(这里是root)具备‘读+写+执行’权限。

在这里插入图片描述4上图–先试验在755 (rwxr-xr-x) 权限下,ubun4先用命令 source myvenv/bin/activate 激活并进入了(myvenv)虚拟环境。给自己打算创建的项目起名为 ‘my’,然后用命令:
django-admin startproject my
创建名称为 my 的django项目。然而,遇到提示‘命令错误’:拒绝访问:/var/www/my。失败。虽然已经把ubun4加入到 root 组了,但是按照图3显示,对于www目录,所属组root的成员没有写入的权限。

在这里插入图片描述
5a1上图–未改变时目录www的权限是755(图中最下一行)

在这里插入图片描述5_上图–用 sudo chmod -R 775 www 命令(图中第一行):改变目录www旧权限755为新的775。之后成功创建my项目。

在这里插入图片描述
5a2上图–改变后目录www的权限是775(图中第三行),即使得所属组也具备了完整权限。

在这里插入图片描述5b上图–用 ll (两个L的小写。等于ls -l)命令查看项目my目录的权限及其下面子目录的权限。
可以看到,在www目录下,项目my(倒数第三行)的所有者、所属组都是ubun4,权限是755(drwxr-xr-x)。所有者(u)ubun4具备完整权限7。所属组(g)和其它(o)具备读-执行权限5。
项目my目录下有一个同名子目录my。有关项目的设置管理文件包含在这里面。

66上图–用tree命令查看my项目的目录结构。提示不存在tree命令但可以安装。依照提示安装tree

在这里插入图片描述7上图–安装tree完成并查看my目录。目前my项目下的目录和文件就是这些。

在这里插入图片描述上图–!!备注:好像可以删掉本条说明------8使用python manage.py migrate命令创建数据表

在这里插入图片描述9上图–使用python_manage_py_runserver命令启动站点

在这里插入图片描述10上图–在浏览器中网址栏输入、打开127.0.0.1:8000(或 localhost:8000),看到成功运行站点的页面。

6、在项目目录下创建app即应用(app—applications)

创建一个简单的blog应用,命名为‘app2’。
在这里插入图片描述1上图–创建名称app2应用–一个简单blog

在这里插入图片描述2a 上图–ubuntu下预装的是vim tiny版本,功能不全,好像没人知道如何使用。因此,需要安装vim full版本。 用命令sudo apt install vim 进行安装。之后变成vim huge版本,可以正常使用了。

在这里插入图片描述2b上图–选择y同意安装vim

在这里插入图片描述2c上图–安装vim完成

在这里插入图片描述3a上图–用命令vi --version查看vi/vim版本。其中显示是Huge版本(Huge version without GUI)。

在这里插入图片描述4a上图–使用vi编写、修改/var/www/my/app2/(就是项目/应用)下面的由django生成的models.py的文件代码,就是编写数据库模型。

在这里插入图片描述
4b上图–原始状态的models.py只有这两行代码。

在这里插入图片描述4c上图–编写数据模型Blog2(就是类class Blog2),按照需要编写四个属性(就是四个栏目/列)。模型会被django转成数据库表(table),属性会被转成数据库表中的字段(fields)。Meta子类的属性ordering可用来设定按照哪个栏目排序。注意这是只有一个元素的元组(tuple),所以跟在元素后的那个逗号不得忽略。此处设定按照 ‘-publish’ 排序,加负号‘-’是反序。str()返回供人类阅读的文本。

在这里插入图片描述4d1上图–用vi打开settings.py文件并编辑。

在这里插入图片描述4d2上图–把前面创建的应用app2添加到/var/www/my/my/settings.py中的INSTALLED_APPS=列表里。目录里面的…/my/my/…两个my,第一个是项目(project)目录,第二个是与项目同名的管理目录(目录下是项目运转需要的一些文件)。

在这里插入图片描述5a上图–为Blog2模型创建迁移数据。使用命令python manage.py makemigrations app2(命令+应用app2)。需要在项目目录下进行。凡是变动数据模型后,都需要再进行这个和后面的几个步骤。

在这里插入图片描述5b上图–执行python manage.py makemigrations …之后的输出。显示创建了模型Blog2。

在这里插入图片描述5c上图–用python manage.py sqlmigrate app2 0001命令查看模型转成数据库的情况

在这里插入图片描述
5d上图–用命令python manage.py migrate完成已经前面预备好的模型及数据库相关的迁移。

在这里插入图片描述6a上图–在使用‘管理后台’对网站进行管理前,需要先注册一个超级用户,用 createsuperuser 命令创建超级用户admin2。

在这里插入图片描述6b上图–打开命令行终端,激活虚拟环境,进入django项目my根目录,用命令python manage.py runserver启动django自带的web服务器。打开浏览器输入网址127.0.0.1:8000/admin回车,看到‘管理后台’登录提示。输入用户名admin2和口令登录。
在这里插入图片描述6c上图–登录进去后看到‘管理后台’首页。页面目前只有用户和组。

在这里插入图片描述7a上图–激活并进入虚拟环境myvenv后用vi命令打开 admin.py 文件注册Blog2模型。具体内容看下图7b。

在这里插入图片描述
7b上图–用命令vi admin.py 打开该文件,将Blog2模型注册到‘管理后台’。第二行和最下面一行是自己添加的。

在这里插入图片描述7c上图–启动django自带的web服务。打开浏览器,定位到相应网页(127.0.0.1/admin)。看到了模型Blog2s。Blog2之后的‘s’是django自动加上去的。

(待续)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值