django官方文档详解
  • 编写属于自己的第一个网站
  • 模型与字段类型
  • 关系类型数据字段
  • 模型参数统计说明
编写属于自己的第一个网站
Web开发 . 2019/12/02发布 . shanyonggang_web . 我要评论 . 492阅读

开发环境

博主所使用的环境是pytho3.6+django2.1,开发工具为pycharm,在开始前请确保自己的开发环境已经搭建成功,具体这块博主不做说明,如后续有时间单独说下开发环境配置问题,目前可百度解决此问题。

配置虚拟环境

虚拟环境(virtualenv,或venv )是 Python 多版本管理的利器,可以使每个项目环境与其他项目独立开来,保持环境的干净,解决包冲突问题。你可以将虚拟环境理解为一个隔绝的小系统。首先创建一个文件夹,如博主的django_file_study:

F:\0_个人学习\2_django开发\0_项目实战\django_file_study>

进入该文件夹,运行配置venv的命令,如下代码:

F:\0_个人学习\2_django开发\0_项目实战\django_file_study>python -m venv env   # env为虚拟环境的存放目录,可以根据自己随意命名

完成后运行如下代码进入虚拟环境中:

F:\0_个人学习\2_django开发\0_项目实战\django_file_study>env\Scripts\activate.bat   # env为虚拟环境的存放目录,可以根据自己随意命名

出现如下界面(前面出现虚拟环境名称)即表示我们已经进入虚拟环境中:

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study>

安装django

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study>pip install django==2.1
Collecting django==2.1
  Using cached https://files.pythonhosted.org/packages/51/1a/e0ac7886c7123a03814178d7517dc822af0fe51a72e1a6bff26153103322/Django-2.1-py3-none-any.whl
Collecting pytz (from django==2.1)
  Using cached https://files.pythonhosted.org/packages/e7/f9/f0b53f88060247251bf481fa6ea62cd0d25bf1b11a87888e53ce5b7c8ad2/pytz-2019.3-py2.py3-none-any.whl
Installing collected packages: pytz, django
Successfully installed django-2.1 pytz-2019.3
You are using pip version 10.0.1, however version 19.3.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.

很简单我们就将django安装成功了,接下来我们就开始创建属于我们的第一个网站。

创建django项目

在文件夹下运行django-admin startproject file_study

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study>django-admin startproject file_study

运行成功后我们发现django_file_study文件夹下多出来几个文件,如下:

file_study
│  db.sqlite3
│  manage.py
│
└─file_study
    │  settings.py
    │  urls.py
    │  wsgi.py
    └─ __init__.py

我们进入file_study项目,其中djnago中自带了一个一个轻量的Web开发服务器,也被叫做“runserver”。开发服务器是为了让你快速开发Web程序,通过它可以避开配置生产环境的服务器的繁琐环节,接下来我们进入运行

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study>cd file_study

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study\file_study>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 15 unapplied migration(s). Your project may not work properly until you apply the migrations for app(s): admin, auth, contenttypes, sessions.
Run 'python manage.py migrate' to apply them.
December 02, 2019 - 14:56:20
Django version 2.1, using settings 'file_study.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

我们在浏览器中输入http://127.0.0.1:8000/,出现如下界面:

这样我们的django小火箭就运行起来了,接下来我们在此基础之上写一个简单的网页,对MVT模型做简单的理解,其中:

  • M表示model,用来处理与数据库的交互
  • V表示view,把渲染好的网页返回给使用者,让我们可以在浏览器中看到网页。
  • T表示templates,前端网页模板把数据填充进网页中进行渲染。

创建APP

首先创建一个app,如下:

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study\file_study>python manage.py startapp index

接下来更改seetings.py配置:

INSTALLED_APPS = [
    *******
    # 添加app
    'index',
]

创建models

from django.db import models

# Create your models here.
class People(models.Model):

    choice = [
        ('bj', '北京'),
        ('sh', '上海'),
        ('gz', '广州'),
    ]

    name = models.CharField(max_length=100, blank=True, verbose_name='人名')
    address = models.CharField(max_length=100, choices=choice, verbose_name='住址')

    class Meta:
        verbose_name = '用户信息'

    def __str__(self):
        return self.name

创建完成后进行数据迁移,由于django自带sqlite3数据库,因此我们在开发过程中可以直接用此数据库,

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study\file_study>python manage.py 
(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study\file_study>python manage.py migrate

配置urls.py

在开发过程中,我们通常在每个APP下单独建立urls.py文件,然后将其配置在主urls.py文件中,首先我们在index的APP下新建urls.py文件,如下:

from django.urls import path
from .import views

urlpatterns = [
    path('', views.show_people,name='people'),
]

将其配置在主项目的urls.py文件中,如下:

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

urlpatterns = [
    path('admin/', admin.site.urls),
    path('index/', include('index.urls')),
]

编写views.py

from django.shortcuts import render,HttpResponse

# Create your views here.
def show_people(request):
    return HttpResponse('我个人网站创建成功了!!!')

上述完成后,运行如下

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study\file_study>python manage.py runserver

打开 http://127.0.0.1:8000/即可看到我个人网站创建成功了!!!这段文字

修改views.py

如果我们想显示我们所创建的模型数据,我们需要对views.py文件进行修改;如下:

from django.shortcuts import render,HttpResponse
from . import models
# Create your views here.
def show_people(request):
    people_info = models.People.objects.all()
    context = {
        'people_info': people_info,
    }
    return render(request,'people.html',context=context)
    # return HttpResponse('我个人网站创建成功了!!!')

此时我们想显示的是我们自己创建的html模板文件,因此在settings.py中配置模板目录,如下:

TEMPLATES = [
    {
        # 修改DIRS这块
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        *****
    },
]

同时在项目文件夹下创建templates文件夹用户存放html模板文件,我们在模板文件夹下添加我们现在想显示的html模板,people.html如下:

<!DOCTYPE html>
<!-- 网站主语言 -->
<html lang="zh-cn">

<head>
    <!-- 网站采用的字符编码 -->
    <meta charset="utf-8">
    <!-- 预留网站标题的位置 -->
    <title>个人信息展示平台</title>
    
</head>

<body style="min-height: 640px;">
    <div>
        <ul>
            {% for people in people_info %}
            <li>
                <span>{{ people.name }}</span>
                <br>
                <span>{{ people.address }}</span>
            </li>
            {% endfor %}
        </ul>
    </div>
</body>
</html>

这样我们就完成配置,接下来我们需要添加数据以便前台显示,django为我们提供了一个便利的后台管理平台,我们需要运行如下代码创建超极用户来管理后台:

(env) F:\0_个人学习\2_django开发\0_项目实战\django_file_study\file_study>python manage.py createsuperuser
Username (leave blank to use 'shanyonggang'): shanyonggang
Email address: 511248513@qq.com
Password:
Password (again):
Superuser created successfully.

这样我们就创建了超极用户,运行服务器,同时在浏览器中输入127.0.0.1:8000/admin,即进入了后台管理登陆页面,输入账号和密码即可进入后台:

但是进入我们看不到我们所创建的模型,需要在admin中进行注册,具体为修改admin.py文件,如下:

from django.contrib import admin

# Register your models here.
from .models import People
 
# Register your models here.
admin.site.register(People)

完成后刷新页面,即可看到如下:

接下来我们添加几条信息,然后刷新前台页面,可以看到数据已经传到前台,如下:

 

这样,我们就实现了数据库与前台的交互,这是一个比较简单的案例,但是所有大项目都是在此基础之上建立的,整体流程大致都是这样,后续我们会对上面所使用到的模块进行详细说明。


  • 有疑问请在下方评论区留言,我会尽快回复。
  • Email私信我: 511248513@qq.com 或添加博主 微信

前一篇:已经是第一篇文章了!

后一篇:模型与字段类型

本文作者:shanyonggang_web
发布时间:2019年12月2日 14:13
许可协议: 署名-非商业性使用 4.0 国际许可协议
知识共享许可协议     转载请保留原文链接及作者
正在加载今日诗词....
您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请狠狠点击下面的


登录 后回复

当前暂无评论,点击登录来做第一个吃螃蟹的人吧!