python3 for django (一)web应用框架搭建

好多人纠结使用python2.x 还是使用python3.x 更好些,博主还没有站到很高高度来分析这件事,况且从来都是喜则偏,但可以肯定的说,截至目前为止,django已经版本已经出到了2.1.4。本人使用的python3.7.0。完美运行。

在开始之前可以阅读下这篇博客:https://www.jianshu.com/p/b9fdc977bb96 说的比较到位。

正题

1.django 安装

pip install django [==版本号]

中括号可以指定要安装的版本,如果有特定要求的话。

 pip show djngo 可以查看是否安装成功,并展示版本号以及相关信息。

2.django工程创建

django框架是基于python 语言 得一个mvc 框架,帮我们搭好web 框架,更好得让我们致力于要做的逻辑和业务代码。

在cmd 中执行如下命令,创建项目架构

django-admin startproject 项目名称

 创建完成后使用你得编辑器打开项目,结构如下:

blogproject\
    manage.py
    blogproject\
        __init__.py
        settings.py
        urls.py
        wsgi.py

blogproject\ 目录是我们刚刚指定的工程目录。blogproject\ 目录下面有一个 manage.py 文件,manage 是管理的意思,顾名思义 manage.py 就是 Django 为我们生成的管理这个项目的 Python 脚本文件.

与 manage.py 同级的还有一个 blogproject\ 的目录,这里面存放了一些 Django 的配置文件,例如 settings.py、urls.py 等等。

其中:setting,py 设置项目相关得设置属性文件,urls.py 管理连接。   

3.项目运行                         

在项目根目录下执行如下命令

python manage.py runserver

 看到如下提示,就表明项目成功运行。

Starting development server at http://127.0.0.1:8000/
Quit the server with CTRL-BREAK.

4.自定义项目应用

以上我们成功运行了django web 项目,但这只是一个初始化的内容,那么我们需要在该项目中创建一个自己想要的应用怎么办?

Django 鼓励我们把自己编写的代码组织到应用(Application)里,并且最好是一个应用只提供一种功能。例如我们要开发的 Django 博客,相关的代码都放在 blog 这个应用里。其实应用也没什么复杂的,不过是把功能相关的代码组织到一个文件夹里,这个文件夹就成了一个应用(姑且可以这样理解)。

我们可以在 Django 工程目录下手动地建立一个文件夹,为它取个名字,并且告诉 Django 说这是一个应用。但是我们不必做这些无聊的工作,Django 已经为我们提供了自动创建应用的命令,进入到 manage.py 文件所在的目录下,运行 如下命令即可建立一个 blog 应用:

python manage.py startapp 应用名称 

使用idea 打开项目工程如下结构展示,会多出一个blog文件夹:

此时我们的django 项目还不知道我们创建了一个blog的应用,那么我们就需要在setting中去做配置,找到 INSTALLED_APPS 设置项,将 blog 应用添加进去:

# Application definition

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

在该配置中我们还可以看到,初始化的框架帮我做了那些事情,创建了管理员应用,权限应用,内容编辑,消息等应用。

创建完成后我们需要创建自己的mvc视图。首先需要在blog应用中添加urls.py 作为该应用独有的urls 管理器,并将该管理器添加到项目urls 管理中。

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

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

然后我们添加我们的view视图,它支持两种方式:

1.index 继承了request 方法,直接返回一个相应结果:HttpRespsonse()

from django.http import HttpResponse
from django.shortcuts import render


def index(request):
     return HttpResponse("欢迎访问我的博客网站!")
    

最后我们设置blog应用的urls 管理,运行还项目,就看到我们自己的blog 应用成功运行。

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

"""
        比如说我们本地开发服务器的域名是 http://127.0.0.1:8000,
        那么当用户输入网址 http://127.0.0.1:8000 后,Django 
        首先会把协议 http、域名 127.0.0.1 和端口号 8000 去掉,
        此时只剩下一个空字符串,而 r'^$' 的模式正是匹配一个空字符串
        (这个正则表达式的意思是以空字符串开头且以空字符串结尾),
        于是二者匹配,Django 便会调用其对应的 views.index 函数
"""
urlpatterns = [
    url(r'^$', views.index, name='index'),

]

但是,

我们看到在视图函数里返回的是一个 HttpResponse 类的实例,我们给它传入了一个希望显示在用户浏览器上的字符串。但是我们的博客不可能只显示这么一句话,它有可能会显示很长很长的内容。比如我们发布的博客文章列表,或者一大段的博客文章。我们不能每次都把这些大段大段的内容传给 HttpResponse

Django 对这个问题给我们提供了一个很好的解决方案,叫做模板系统。Django 要我们把大段的文本写到一个文件里,然后 Django 自己会去读取这个文件,再把读取到的内容传给 HttpResponse。让我们用模板系统来改造一下上面的例子。

from django.http import HttpResponse
from django.shortcuts import render

from blog.models import Post


def index(request):
     return render(request, "blog/index.html", context={
                      'title': '我的博客首页',
                      'welcome': '欢迎访问我的博客首页',

这时候我们需要在项目根目录下创建一个管理页面资源的文件,并将该项目的默认资源路径设置为该路径根目录:

 并添加前端资源,index.html 以及其渲染资源css ,js。运行项目后查看该页面。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值