美文网首页python
开源服务端框架Django二:添加第一个应用

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

作者: IT前沿技术分享 | 来源:发表于2020-04-04 16:00 被阅读0次

——————————————————————
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的一些非常基础的环境及应用,以后有时间会抽取更多的时间来,深入的学习介绍,敬请期待。

相关文章

网友评论

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

    本文链接:https://www.haomeiwen.com/subject/acwdphtx.html