python web开发——Django入门

什么是Django

Django 是一个高层次的Python Web框架,鼓励快速开发和简洁实用的设计。由经验丰富的开发人员构建的,它处理了Web开发的许多麻烦,因此您可以专注于编写应用程序而无需重新创建轮子。它是免费和开放源码的。

具体体现在如下几个方面:

  1. ORM设计思想,对象关系映射,从前端对象到后端数据库。
  2. 良好的模板引擎。
  3. 内置后台管理系统。

Django的特点

  1. 开发快
    Django 能够以最快速度,帮助开发者将应用从概念变成项目。
  2. 安全性好
    Django 重视安全性,帮助开发人员避免许多常见的安全错误。
  3. 可伸缩性好
    Django针对大型网站能够快速开发和扩展。

下载安装python

首先,你需要下载安装python,如果你还没有安装Python,请参考教程:

下载安装Django

  • django 的官网是:https://www.djangoproject.com/,从这里你也可以了解一下Django。
  • django的安装非常简单,使用pip或者easy_install都可以。
pip isntall django

安装成功后,进入python命令行,查看版本:

C:\Windows\System32>python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 20:42:59) [MSC v.1500 32 bit (Intel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.get_version()
'1.11.3'
>>>

创建Django项目

1.打开命令行,进入想要安置项目的目录;

2.可以使用下面命令创建项目,一些IDE可以自动生成Django项目结构,例如pycharm。

django-admin startproject [项目名]

django-admin startproject mysite

生成的项目结构如下所示

这里写图片描述

下面我解释一下这些文件的意义:

1.外层的mysite/根目录仅仅是项目的一个容器。它的命名对Django无关紧要;你可以把它重新命名为任何你喜欢的名字。

2.manage.py:一个命令行工具,可以使你用多种方式对Django项目进行交互管理。

3.内层的mysite/目录是你的项目的真正的Python包。它是你导入任何东西时将需要使用的Python包的名字(例如 mysite.urls)。

4.myblog/init.py :一个空文件,它告诉Python这个目录应该被看做一个Python包。

5.myblog/setting.py:该Django 项目的设置/配置。

6.myblog/urls.py:该Django项目的URL声明;你的Django站点的“目录”。

7.myblog/wsgi.py:用于你的项目的与WSGI兼容的Web服务器入口。

根据模型在数据库创建表

这里我们还没有模型,我们先简单的执行一下这个命令:

python manage.py migrate

修改配置文件

在settings.py中找到LANGUAGE_CODE = ‘en-us’,将其修改为LANGUAGE_CODE = ‘zh-hans’,也就是修改为中文。

启动本地服务器

可以在本地启动服务器来测试我们的程序(当然实际项目当中需要真正的商业服务器例如:Nginx等)
进入到你的项目目录,(与manage.py同一目录下)
启动本地服务器命令如下:

python manage.py runserver

运行上面命令输出如下:

E:\myblog>python manage.py runserver
Performing system checks...

System check identified no issues (0 silenced).

You have 13 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 23, 2017 - 14:47:52
Django version 1.11.3, using settings 'myblog.settings'
Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

查看运行结果

根据上面提示,我们可以在浏览器中输入:http://127.0.0.1:8000/ 查看运行结果如下:

It worked!
Congratulations on your first Django-powered page.

Next, start your first app by running python manage.py startapp [app_label].
You're seeing this message because you have DEBUG = True in your Django settings file and you haven't configured any URLs. Get to work!

这里写图片描述

创建应用

首先,我们来理解一下项目和应用的区别,一个项目可以包含多个应用,应用在项目里面是独立的。例如:一个在线教育项目,包含多个应用,有:博客、视频、社区等。
下面我们创建一个简单的投票系统,系统中有两个模型分别是问题和问题选项,后面我们将详细介绍。

创建应用使用如下命令:(仍然是在项目目录下)

E:\myblog>python manage.py startapp polls

E:\myblog>

生成的应用polls目录如下所示:

这里写图片描述

1.polls是应用的包名称
2.admin.py 是该应用的后台管理程序,后面我们再介绍。
3.migrations 是一个包名称,里面的内容是由模到数据库迁移内容。
4.models.py 是模型文件。
5.tests.py 是单元测试。
6.views.py 是视图层内容。

定义模型

django采用了ORM设计思想,就是对象关系映射(Object Relation Mapping),先设计模型,根据模型自动生成数据库表。

模型都继承django.db.models.Model类。下面打开models.py,创建如下两个模型类:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Question(models.Model):
    question_text = models.CharField(verbose_name="问题",max_length=200)
    pub_date = models.DateTimeField(reversed("发布日期"))
class Choice(models.Model):
    question = models.ForeignKey(Question)
    choice_text = models.CharField(verbose_name='选项',max_length=200)
    vote = models.IntegerField(verbose_name='投票数',default=0)

激活模型

要想让系统识别模型,必须在settings.py中配置应用,打开settings.py,在INSTALLED_APPS选项中添加应用polls。

# Application definition

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

这里是一个应用的列表,上面的几个应用都是django自带的应用,有后台管理、授权、内容类型、会话、消息管理和统计等。

这里我们添加了自己的应用polls,这样当我们执行数据库迁移命令时,会找到我们的应用,根据该应用中的模型生成对应的数据库表。

生成数据库

下面我们使用命令来生成数据库。

E:\myblog>python manage.py migrate
Operations to perform:
  Apply all migrations: admin, auth, contenttypes, sessions
Running migrations:
  Applying contenttypes.0001_initial... OK
  Applying auth.0001_initial... OK
  Applying admin.0001_initial... OK
  Applying admin.0002_logentry_remove_auto_add... OK
  Applying contenttypes.0002_remove_content_type_name... OK
  Applying auth.0002_alter_permission_name_max_length... OK
  Applying auth.0003_alter_user_email_max_length... OK
  Applying auth.0004_alter_user_username_opts... OK
  Applying auth.0005_alter_user_last_login_null... OK
  Applying auth.0006_require_contenttypes_0002... OK
  Applying auth.0007_alter_validators_add_error_messages... OK
  Applying auth.0008_alter_user_username_max_length... OK
  Applying sessions.0001_initial... OK

E:\myblog>python manage.py makemigrations polls
Migrations for 'polls':
  polls\migrations\0001_initial.py
    - Create model Choice
    - Create model Question
    - Add field question to choice

E:\myblog>

我们可以查看一下生成的数据库,下载一个sqlite数据库工具,链接是:https://www.sqlite.org/2017/sqlite-tools-win32-x86-3200100.zip

下载后配置环境变量。

然后将命令行定位到当前项目sqlite数据库所在的目录,使用sqlite命令可以查看我们创建好的数据库。

命令如下:

>sqlite3
>sqlite3 .\db.sqlite3
sqlite3> .datebases
sqlite3> .tables
sqlite3> .schma pool_choice

也可以使用如下命令查看创建表的内容:

python manage.py sqlmigrate polls 0001
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值