开源服务端框架Django二:添加第一个应用

——————————————————————
Django系列笔记:
一、开发环境搭建
二:添加第一个应用
三:配置Mysql数据库1
四:配置Mysql数据库2
五:模型models
……
——————————————————————

一、前言

前一个笔记介绍了,如何搭建Django的开发环境,并且创建一个属于自己的django项目,详情请看Python的开源服务端一:Django开发环境搭建

前提都已经准备好了,忍不住开始Django之旅啦。

二、添加你的应用

在之前的基础上,我来场景属于自己的app

1.. 创建新的app:

创建完项目后,在mysite目录下创建一个名为HelloDjango的app:

python manage.py  startapp HelloDjango

创建完成后,查看目录,目录结构如下:


2.png

这些目录和文件的用处是:

  • 最外层的 mysite/ 根目录只是你项目的容器, 根目录名称对Django没有影响,你可以将它重命名为任何你喜欢的名称。
  • manage.py: 一个让你用各种方式管理 Django 项目的命令行工具。你可以阅读 django-admin and manage.py 获取所有 manage.py 的细节。
  • 里面一层的 mysite/ 目录包含你的项目,它是一个纯 Python 包。它的名字就是当你引用它内部任何东西时需要用到的 Python 包名。 (比如 mysite.urls).
  • mysite/__init__.py:一个空文件,告诉 Python 这个目录应该被认为是一个 Python 包。如果你是 Python 初学者,阅读官方文档中的 更多关于包的知识
  • mysite/settings.py:Django 项目的配置文件。如果你想知道这个文件是如何工作的,请查看 Django settings 了解细节。
  • mysite/urls.py:Django 项目的 URL 声明,就像你网站的“目录”。阅读 URL dispatcher 文档来获取更多关于 URL 的内容。
  • mysite/asgi.py:作为你的项目的运行在 ASGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。
  • mysite/wsgi.py:作为你的项目的运行在 WSGI 兼容的Web服务器上的入口。阅读 如何使用 WSGI 进行部署 了解更多细节。

现在,我们再次启动 Web 服务器,执行命令:

python manage.py runserver

测试访问本机的 admin,使用浏览器访问:http://127.0.0.1:8000/admin

3.png

这里需要账号和密码才能登陆,后面会介绍如何添加管理员,添加后,就可以登陆了。

创建完成后,用pycharm打开整个工程mystite,方便编码。

在mysite/mysite目录结构中找到setting.py,打开并找到INSTALLED_APPS,把我们的app ‘HelloDjango’ 添加到最底下

4.png

OK,添加完毕

2. 设计你的模型:

Django一个比较方便的地方是它附带了一个可以用Python代码描述数据库布局的对象关系映射器,数据模型语法提供了许多丰富的方法来展现你的模型。

创建一个包含title,content,pub time的模型
打开models.py,添加以下代码:

from  django.db import  models

class  Article(models.Model):

    title  =  models.CharField(max_length=32,default='Title')

    content  =  models.TextField(null=True)

    pub_time  =  models.DateTimeField(auto_now_add=True)

创建完成后同步数据库
powershell 执行以下命令

python manage.py makemigrations

python manage.py migrate

并在admin.py中注册
打开admin.py,添加以下代码:

from  django.contrib import  admin

from  .models import  Article

admin.site.register(Article)

OK,一个简单的数据模型就这样添加完成,是否非常简单。

3. Admin 管理工具

Django 最强大的部分之一是自动生成的Admin 界面。它读取模型中的元数据来提供一个强大的、生产环境就绪的界面,使内容提供者能立即用它向站点中添加内容。

添加管理员账号
powershell 执行以下命令,会引导你完成管理账号的添加

python manage.py createsuperuser

通过127.0.0.1:8000/admin访问Admin界面,用刚才的管理员账户登录。

强大的 Python web 框架

你可在settings.py中将Admin界面的语言和时间设置为中国

LANGUAGE_CODE = ‘zh-hans’

TIME_ZONE = ‘Asia/Shanghai’

4. 前端页面

Django的前端页面保存在Templates文件夹中,在HelloDjango中新建Templates文件夹并编写自己的前端代码。图片等资源则需要保存在static文件夹中。

配置url与views

我们可以为每个app单独配置url,

  • 首先配置mysite中的urls.py
from django.contrib import admin

from django.urls import path

from django.urls import include

urlpatterns  =  [

      path('admin/',  admin.site.urls),

      path('HelloDjango/',include('HelloDjango.urls')),

]
  • 在HelloDjango中新建urls.py
from django.conf.urls import url

from  .  import views

urlpatterns  =  [

      url(r'^$',views.index),

]
  • 在views.py中
from  django.shortcuts import  render

from  .  import  models

def  index(request):

      return  render(request,'index.html')
  • 在 Templates下,添加index.html文件,打开写入以下h5代码
<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <title>Hello,Django!</title>

  <style type="text/css">
    html {
      width: 100%;
      height: 100%;
      overflow: hidden;
      font-style: sans-serif;
    }

    body {
      width: 100%;
      height: 100%;
      font-family: 'Open Sans', sans-serif;
      margin: 0;
      background-color: #FF8080;
    }

    #login {
      position: absolute;
      top: 50%;
      left: 50%;
      margin: -150px 0 0 -150px;
      width: 300px;
      height: 300px;
    }

    #login h1 {
      color: #fff;
      text-shadow: 0 0 10px;
      letter-spacing: 1px;
      text-align: center;
    }

    h1 {
      font-size: 2em;
      margin: 0.67em 0;
    }

    input {
      width: 278px;
      height: 18px;
      margin-bottom: 10px;
      outline: none;
      padding: 10px;
      font-size: 13px;
      color: #fff;
      text-shadow: 1px 1px 1px;
      border-top: 1px solid #312E3D;
      border-left: 1px solid #312E3D;
      border-right: 1px solid #312E3D;
      border-bottom: 1px solid #56536A;
      border-radius: 4px;
      background-color: #2D2D3F;
    }

    .but {
      width: 300px;
      min-height: 20px;
      display: block;
      background-color: #4a77d4;
      border: 1px solid #3762bc;
      color: #fff;
      padding: 9px 14px;
      font-size: 15px;
      line-height: normal;
      border-radius: 5px;
      margin: 0;
    }
  </style>
</head>

<body>
  <div id="login">
    <h1>Hello,My First Django!</h1>
  </div>
</body>

</html>
  • 查看自己编写的index.html的内容
    powershell 执行命令,启动 Django 的 Web 服务器
 python manage.py runserver 

此时访问http://127.0.0.1:8000/HelloDjango则会显示:

5.png

到这里,我们就能看到一个完整的应用了。

三. 加载数据库中的内容:

前面,已经添加数据模型,与首页,那么我们该如何使用数据模型去添加数据,二号使用数据在页面显示呢

  • 添加数据
    admin,我们就可以点击,添加Articles数据

    6.png

    保存,即可

  • 在views.py中加载:

def Article(request,Article_id):

    article  =  models.Article.objects.get(pk=Article_id)

    return  render(request,'article.html',{'article':article})
  • 在urls.py中添加:
url('article/(?P<Article_id>[0-9]+)$',  views.Article)
  • 在 Templates下,添加Ariticle.html文件
    在之前index.html 的基础上,修改body,做出以下调整
<body>
  <div id="login">
    <h1>Hello,My First Django!</h1>
      <div>
        <label class="required" for="id_title">{{article.title}}</label>
      </div>
      <label class="required" for="id_title">{{article.content}}</label>
  </div>
</body>

通过{{article.title}},{{article.content}}可以分别加载出文章的标题,内容(对应自己创建的模型)

完成后,通过访问‘127.0.0.1:8000/HelloDjango/article/’ + 文章的id 就可以访问指定的文章

如127.0.0.1:8000/HelloDjango/article/1 访问新建的第一篇文章:


7.png

四、结语

如此,轻松简单就能把一个前后端的应用给整起来了,还在为后台服务开发烦恼吗,赶紧用起来把。

由于时间的原因,这里就简单介绍Django的一些非常基础的环境及应用,以后有时间会抽取更多的时间来,深入的学习介绍,敬请期待。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 161,192评论 4 369
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,186评论 1 303
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 110,844评论 0 252
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,471评论 0 217
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,876评论 3 294
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,891评论 1 224
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,068评论 2 317
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,791评论 0 205
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,539评论 1 249
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,772评论 2 253
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,250评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,577评论 3 260
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,244评论 3 241
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,146评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,949评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,995评论 2 285
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,812评论 2 276

推荐阅读更多精彩内容