使用Python语言开发WEB应用最流行的框架是Django。本系列将逐步创建一个Django项目 storefront,基本涵盖Django的各种知识点。
当用户请求WEB服务器时,有两种返回方式:
- 返回生成的html页面,这是传统的方式。
- 返回数据,而页面由前端产生,比如React,VUE或小程序等。这才是现代的开发方式。
本系列使用Django开发Web应用采用的就是第2种现代的开发方式,前端代码基本不涉及,尽管Django也支持前端代码的生成,但对于现代开发而言,已不太推荐了。
题外话,前端的React系列已有计划开设,有兴趣的朋友可以持续关注。
设置开发环境
安装最新版python,安装vscode并安装python插件。
一般建议使用pipenv安装。首先安装好pipenv:
pip3 install pipenv
python开发环境的设置,在《完全掌握Pyhon》系列中已有介绍,这里不再重复。
建立第一个Django项目
mkdir storefront
cd storefront
pipenv install django
这条命令用于建立Django虚拟环境
pipenv shell,激活虚拟系统
django-admin startproject storefront .
创建storefront的django项目,注意当前目录 . 不能省,否则可能会多生成一个目录代表项目文件夹,这样文件夹会有些重复。
启动web应用:
python manage.py runserver 8000
可以省略端口8000,默认就是8000,也可以设其他端口。
这样将打开http://127.0.0.1:8000
确认页面正常,表示django项目已创建成功。
创建第一个应用
python manage.py startapp playgroud
创建playgroud应用,每个应用自动创建一个文件夹。
结构类似,有admin.py,apps.py,models.py,views.py等等。
在项目文件夹 storefront下的settings.py注册该应用:
INSTALLED_APPS = [
…
‘playgroud’,
]
编写视图
在应用playgroud文件夹下的 views.py键入:
from django.http import HttpResponse
def say_hello(request):
return HttpResponse(‘Hello World!’)
映射URLs和Views
增加playgroud下的urls.py:
from django.urls import path
from . import views
urlpatterns = [
path(‘hello/’, views.say_hello),
]
再在主urls,storefront–>urls.py中添加:
…
urlpatterns = [
…
path(‘playgroud/’, include(‘playgroud.urls’)),
]
再访问 http://127.0.0.1:8000/playgroud/hello
就能看到 Hello World 字样了。
使用模板
playgroud下新建文件夹templates,再在其下新建文件hello.html,
修改playgroud–>views.py的say_hello():
def say_hello(request):
return render(request,’hello.html’,{‘name’:’kelemi’})
再编辑hello.html:
{% if name %}
<h1>Hello {{ name }}</h1>
{% else %}
<h1>Hello world</h1>
{% endif %}
说明:
{%%}内可以有逻辑,比如if else 等;
{{}} 内放置表达式。
再访问 http://127.0.0.1:8000/playgroud/hello,可以看到模板的name由kelemi代替了。显示H1字体的“Hello kelemi”
在VSCODE中调试Django
点击左侧这个调试按钮,创建launch.json文件,选择Django,然后可以设置断点,调试,查看变量值等调试工作了。
Shift + F5,可以不用进入Debug调试。
使用Django调试工具
谷歌搜索 django debug toolbar,找到这个网址可以查看说明:
https://django-debug-toolbar.readthedocs.io/en/latest/
安装下:
pipenv install django-debug-toolbar
再做以下操作:
- 再用 command+p 查找settings.py, 在INSTALLED_APPS这节添加debug_toolbar应用。
- 主urls.py中,添加url映射import debug_toolbarpath(‘__debug__’,include(debug_toolbar.urls)),
- 添加中间件,中间件类似一个钩子,截取django的请求响应并作处理。也在settings.py中,找找MIDDLEWARE这一节,添加:’debug_toolbar.middleware.DebugToolbarMiddleware’,
- 配置settings.py的Internal IPS这一节中,添加
INTERNAL_IPS=[
# …
‘127.0.0.1’,
# …
]
最后,需要将hello.html用html和body包起来。
<html><body>
…
</body></html>
刷新一下,就能看到调试工具栏了。
小结
本节介绍django的基本开发流程以及环境搭建。下一节开始将逐步开始项目的构建。