美文网首页
初识Django

初识Django

作者: 萍水间人 | 来源:发表于2019-01-25 16:11 被阅读60次
首先认识一下web开发框架

什么是web开发?, Web开发指的是开发基于B/S架构,通过前后端的配合,将后台服务器的数据在浏览器上展现给前台用户的应用。比如将电子购物网站的商品数据在浏览器上展示给客户,在基于浏览器的学校系统管理平台上管理学生的数据,监控机房服务器的状态并将结果以图形化的形式展现出来等等。

所以就有了如下代码:

import pymysql

print("Content-Type: text/html\n")
print("<html><head><title>products</title></head>")
print("<body>")
print("<h1>products</h1>")
print("<ul>")

connection = pymysql.connect(user='user', passwd='pwd', db='product_db')
cursor = connection.cursor()
cursor.execute("SELECT name FROM products ORDER BY create_date DESC LIMIT 10")

for row in cursor.fetchall():
    print("<li>%s</li>" % row[0])

print("</ul>")
print("</body></html>")

connection.close()

以上是使用CGI标准开发的一个web应用。

我们可以看到, 首先就是打印一下html标记, 然后构造SQL查询语句对数据库进行查询,之后把打印结果插入到原有的网页中。

首先,这个过程看上去很简单,但是功能太特定化了,只能针对某一中特定的请求进行响应。

  1. 如果应用中有多处需要连接数据库会怎样呢?每个独立的CGI脚本,不应该重复编写数据库连接相关的代码。
  2. 前端、后端工程师以及数据库管理员集于一身,无法分工配合。设想一个前端设计师,完全没有Python开发经验,但是又需要编写SQL语句的话,会发生什么呢?(我有一句话不知当讲不当讲?)
  3. 如果代码被重用到一个复合的环境中会发生什么?
  4. 直接将数据库的密码写在代码里吗?
  5. 今天是取十个商品,明天我要删除十个商品怎么办?

于是人们发现,以下过程是可以不断地重复的。

开始编写一个新的Web应用
开始编写另一个Web应用
从第一步中总结经验(找出其中通用的代码),并运用在第二步中
重构代码使得能在第二个应用中使用第一个程序中的通用代码
重复2-4步若干次
发明了一个Web框架。

于是一个web框架就诞生了。


web框架

Django框架

而我所要学习的Django框架,就是其中之一,
Django基于MVC模型, 也就是model, view , 和controller

利用Django进行开发

  1. 新建项目
    $ django-admin startproject mysite

这时候就新建了一个项目,但是注意的时候项目的名字尽量不要取一些特殊意义的名词

一个新建立的项目大致如下:

mysite/
    manage.py
    mysite/
        __init__.py
        settings.py
        urls.py
        wsgi.py

manage.py是一个和命令行工具进行交互的脚本,启动Django就需要它
其他的内容以后会提到。

  1. 启动开发服务器
    $ python manage.py runserver
    这时候一个本地的服务器就搭建起来了
    如果需要修改运行的端口或者ip地址,可以采取如下方式
    $ python manage.py runserver 0.0.0.0:8000
  1. 创建应用app

一个app实现某个功能,比如博客
一个project包含多个app,这些app组合成整个站点
一个app可以属于多个project!

进入目录下之后,运行如下命令可以生成一个app
$ python manage.py startapp polls
系统会自动生成一个app

目录结构如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    views.py
  1. 编写第一个视图
    polls/views.py文件中, 编写如下代码:
from django.http import HttpResponse

def index(request):
    return HttpResponse("Hello, world. You're at the polls index.")

第一步先导入相关的包,然后定义一个index函数,从名字上来看就是你网站的主页, 返回一个http的response(从名字上看得出来)

为了调用这个视图, 我们还需要编写路由,也就是urlconf
在polls里面新建一个文件,名字叫urls.py
输入如下代码:

from django.conf.urls import url
from . import views

urlpatterns = [
    url(r'^$', views.index, name='index'),
]

.代表当前目录,也就是从当面目录下导入views.py文件
urlpatterns 其实就是用一个正则表达式,去匹配浏览器导航框里面的字符

此时的目录结构如下:

polls/
    __init__.py
    admin.py
    apps.py
    migrations/
        __init__.py
    models.py
    tests.py
    urls.py
    views.py

接下来,在项目的主urls文件中,添加urlpattern条目,指向我们刚刚建立的polls这个app独有的urls文件, 这里需要导入include模块。
打开mysite/urls.py文件,添加如下代码:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^polls/', include('polls.urls')),
    url(r'^admin/', admin.site.urls),
]

include 语法相当于多级路由,把接收到的url地址去除前面的正则表达式,将剩下的字符串传递给下一级路由进行判断。

相关文章

  • 初识Django

    1.简介 Django是一个开放源代码的web框架,MVC开发模式.(在Django里称之为MTV). 2.mvc...

  • 【Django】初识

    Django 是一款python web框架,相比bottle.py或者web.py,功能大而全,比较多的模块可以...

  • Django初识

    简介 Django是一款开源的web框架,使用python语言,采用mvc架构,主要用来构建CMS(内容管理系统)...

  • Django 初识

    一.安装Django,创建主项目 1.安装Django 2.检测安装成功与否 3.创建django项目 创建好的项...

  • Django 初识

    前言 最近有个朋友说他每天工作时都要查看某些官方网站的通告,一看就是十几个网站,每个网站来回切,很是烦躁,于是问我...

  • 初识Django

    安装 pip install Django 如果环境中存在多个python版本时(如同时安装2.*和3.*), 2...

  • 初识Django

    django基本命令行使用 python manage.py python manage.py createsu...

  • 初识 Django

    安装 安装 Python 推荐使用 Python 3 而不是 Python 2 版本,因为毕竟 Python 2 ...

  • 初识Django

    web框架 创建项目django-admin startproject mysite创建apppython man...

  • 初识 Django

    Django 目的是要实现简单快捷的网站开发。以下内容简要介绍MTV设计模式 Django的MTV模式本质上和MV...

网友评论

      本文标题:初识Django

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