Django建站历程:(二)创建第一个project和app

2018年12月10日 Jerry 5680 2021年1月17日

        前面我们已经把django开发环境基本安装好了,本文章开始,我们来使用django创建我们简单的博客网站。本文主要讲述了如何创建我们第一个Django工程和第一个Django app,并将两者正确的添加到一起。

一、新建Django工程环境

        寻龙分金看缠山,一冲山是一重关!首先,给我们的django工程选一个风水宝地真的很重要!这关乎以后的bug多少,调试难易。。。呃,编不下去了。最后,直接在/home/下面开搞吧。

首先,输入以下命令创建我们的博客站点工程,我这里取名字为"mysite":

root@jerryls-site1:/home# django-admin.py startproject mysite

创建成功后会看到该文件夹中多出一个mysite的文件夹,里面还有各种乱七八糟文件夹和文件。

题外话,可以装一个“tree”显示目录,然后直接敲一个tree就可以显示目录:

root@jerryls-site1:/home# apt-get install tree

我们进到mysite文件夹,直接运行以下命令可以启动站点,8000为我们选中的端口号:

root@jerryls-site1:/home/mysite# ./manage.py runserver 0.0.0.0:8000

结果有如下红色提示:

这里是提示我们首先需要创建数据库表,并对数据库表进行更新,ctrl-c终止django服务器运行后,执行如下命令:

root@jerryls-site1:/home/mysite# ./manage.py makemigrations
root@jerryls-site1:/home/mysite# ./manage.py migrate

注意:以后每次我们修改了model.py,新增或删除属性字段,涉及数据库相关的东西,都需要执行以上两条命令。顺利执行后会有如下提示:

看来一切顺利,博客站点就起来了,赶紧在我们的浏览器中直接输入云ECS服务器的外网地址及端口号(例如:http://119.3.19.102:8000/),访问我们的网站,看看会得到什么?

啊偶,结果返回的是以上界面,看起来网络是死活不通?这是怎么回事呢?SSH都可以正常登陆呢!博主刚开始研究了半天,最后发现了下面这个坑。

首先检查下你的端口号有没有写错,如果没有的话需要检查下你的云服务器有没有将该端口号放通:以下以华为云为例,检查云服务器的安全组,如果没有放通8000端口那就添加。

添加端口成功后再次访问,得到了如下界面:

貌似也不是个正经界面,但这个界面总比超时的界面强,我们根据提示,添加'119.3.19.102'ALLOWED_HOSTS:

这需要修改mysite文件夹中的settings.py文件,找到 ALLOWED_HOSTS 字段添加进去即可:

再次重新运行我们的服务器,成功得到了如下界面,表示我们的博客站点环境已经搭建OK:

二、创建Django 第一个APP

        接下来,我们简单添加一个app,你可以把他简单理解为一个小模块:

我在mysite大文件夹下创建了apps文件夹用来存储以后我们添加的app,执行如下命令来创建我们的第一个app,我取名为blog,并移动到apps文件夹下:

root@jerryls-site1:/home/mysite# ./manage.py startapp blog
root@jerryls-site1:/home/mysite# mv blog/ apps/

最后我们得到的目录如下:

app创建完成后,我们需要把该app添加到settings文件中的‘INSTALLED_APPS’字段:

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    #添加blog app
    'blog',
]

此时你运行服务器会报错,应该会提示找不到blog,别慌,问题不大:

这是因为我们将blog app挪动了位置,放到了apps文件夹下面,需要在settings.py 添加下apps文件夹路径:

import sys
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

以上,我们就成功添加了一个我们新建的app,稳如狗!

添加完成后,我们进到blog 文件夹中按照如下步骤修改我们的app,搞出一个主页出来:

1、首先,修改view.py,添加index_view函数,用于主页的内容显示​​​

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def index_view(request):
    return HttpResponse("Hello World! From Jerry Coding")

​​​​2、创建urls.py 文件,里面添加如下代码,指明网页的路由:

from django.urls import path
from .views import index_view

app_name = '[blog]'

urlpatterns = [
    path('', index_view, name='index_url'),

]

我们的django是2.0+的版本,模仿全局路由编写,使用“path”,1.x的版本用的是“url”。这样编写的话,只要访问我们的ip:port 就可以弹出主页index_view,后面的name可以直接在html文件中引用,以后修改维护更为方便。

3、进到mysite小文件夹中,修改全局路由文件urls.py,将blog 这个app所有url加入其中:

from django.contrib import admin
from django.urls import path
from django.conf.urls import include

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('blog.urls', namespace = 'blog')),

]

至此,我们的主页就设置OK了,我们运行服务器,访问地址 http://119.3.19.102:8000/ 便可以得到如下界面:

历经很多波折,终于弹出了我们博客的第一个界面,完美的雅痞!

行了,今晚就先到这吧,博主要洗洗睡了。。。下一篇我们再写下怎么返回一个html文件吧。


《django 建站历程系列文章》

(一)服务器的选取与环境准备

(二)创建第一个project和app

(三)创建并显示博客的主页导航栏

(四)django-allauth实现用户登陆

(五)django-allauth实现第三方登陆

(六)使用bootstrap3美化登陆界面

(七)添加用户签名字段

(八)自定义用户头像

(九)发布我的第一篇博客

(十)CKEditor的配置使用

(十一)ajax实现文章添加评论

(十二)signal自动消息通知

(十三)基于django-haystack的全文搜索

(十四)配置SSL证书实现网站HTTPS访问

(十五)免费开启七牛云CDN加速

(十六)particles 粒子背景插件

(十七)集成 xadmin2 后台管理

(十八)RestFramework 编写API

(十九)Nginx+uwsgi 部署 django

(二十)自定义网站404界面

(二一)jwt为API添加身份认证

jerrycoding 博客源码大公开


原创文章,转载请注明出处: https://jerrycoding.com/article/site_building_2

微信
jerry微信赞助
支付宝
jerry支付宝赞助

您尚未登录,暂时无法评论。请先 登录 或者 注册

0 人参与 | 0 条评论