Django项目详解1——简单的web应用

前言

前段时间看完了廖雪峰老师的Python基础, 开始的时候见内容很多,以为学完了就是大牛了,等一节一节的完成了所有的练习和作业才发现,这才刚入门。

考虑了一下方向,想往web方面发展,于是在众框架中选中了django,官网爬了3天,进度有点慢,虽然讲的确实细,但感觉很吃力,偶然发现了几个不错的网站

以下内容主线以参考刘江老师博客

我的环境都用的稳定版:

  • python 3.6
  • django 1.11

django本来更新到2.0了,结果在官网看到1.11是长期支持版本,支持时间远超2.0,于是又切回来了

本系列一共4篇,3篇是主线,还有一篇拓展外置MySQL数据库的,源码在这里

https://github.com/seeways/mysite

创建工程

其实项目创建还是比较简单的,结构都会自动创建好

django-admin startproject mysite

mysite/             # 项目容器
    manage.py       # 管理工具
    mysite/         # 实际的项目
        __init__.py # python包的初始化文件
        settings.py # 主配置文件
        urls.py     # url路由
        wsgi.py     # 兼容性wsgi(网络通信接口)

如果用工具创建的话,会有templates文件夹,用来存放模板文件(html之类的)

创建app

python manage.py startapp cmdb

mcdb/                   # app目录
    __init__.py         # app初始化文件
    admin.py            # 管理models
    apps.py             # app注册
    migrations/         # db迁移文件夹
        __init__.py
    models.py           # 模型
    tests.py            # 测试
    views.py            # 视图

编写路由

首先在mysite/urls.py中定义路由

"""mysite URL Configuration

The `urlpatterns` list routes URLs to views. For more information please see:
    https://docs.djangoproject.com/en/1.11/topics/http/urls/
Examples:
Function views
    1. Add an import:  from my_app import views
    2. Add a URL to urlpatterns:  url(r'^$', views.home, name='home')
Class-based views
    1. Add an import:  from other_app.views import Home
    2. Add a URL to urlpatterns:  url(r'^$', Home.as_view(), name='home')
Including another URLconf
    1. Import the include() function: from django.conf.urls import url, include
    2. Add a URL to urlpatterns:  url(r'^blog/', include('blog.urls'))
"""
from django.conf.urls import url
from django.contrib import admin
from cmdb import views  # 导入对应app的视图文件


urlpatterns = [
    url(r'^admin/', admin.site.urls),  # 后台管理页面
    url(r"^index/", views.index),  # app路由 url(regex, view, kwargs=None, name=None)
]

  • r"^index/"是自己定义的路由,正则匹配很重要
  • views.index是导入的对应app的views模块的index函数

业务逻辑

路由已经有了,但是需要编写一点逻辑:进入cmdb/views.py

from django.shortcuts import render
from django.shortcuts import HttpResponse  # 导入该模块
# Create your views here.

# 编写在路由中定义的index函数,参数为request
# (request 封装了用户请求的所有内容)
def index(request):  
    # 设置响应数据为简单的字符串
    return HttpResponse("my first django today")  

运行项目

命令行运行:

python manage.py runserver
默认 http://127.0.0.1:8000/

也可以自定义ip和端口

python manage.py runserver 127.0.0.1:8000

但是有个问题,在路由中只定义的两个接口,而且没有定义根接口,所以,应该这么访问

定义的字符串
http://127.0.0.1:8000/index

or

系统的管理后台
http://127.0.0.1:8000/admin

下一篇
Django项目详解2——动态响应的web应用

    原文作者:世外大帝
    原文地址: https://www.jianshu.com/p/d36cd2517c56
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞