1.安装Django
pip install django
验证是否安装成功:
$ python3
Python 3.8.10 (default, Jan 17 2025, 14:40:23)
[GCC 9.4.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import django
>>> django.VERSION
(4, 2, 18, 'final', 0)
>>>
2.建立项目
django-admin startproject 站点名称
django-admin startproject form_demo
目录结构如下:
•manage.py : 是 django 用于管理本项目的命令行工具,之后进行站点运行、数据库自动
生成、静态文件收集等都要通过该文件完成。
•内层form_demo/ 目录中包含了本项目的实际文件,同时因为其中包含__init__.py 文件,
所以该目录也是一个 Python 包。
• form_demo/init.py : 告诉 Python 该目录是-个 Python 包,其中暂无内容。
• form_demo//settings.py: Django 的 项目配置文件 。 默认时,在其中定义了本项目引用的
Django 组件、 Django 项目名等 。 在之后的开发中,还需在其中配置数据库参数、导入
的其他 Python 包等信息。
•form_demo/urls.py : 维护项目的 URL 路由映射,即定义客户端访问的 URL 由 H}j~ 一个 Python
模块解释并提供反馈。在默认情况下,其中只定义了 “ /admin”即 管理员站点的解释器。
•form_demo/wsgi.py : 定义 WSGI 的 接口信息,用于与其他 Web 服务器集成, 一般本文件
在生成后无须改动。
front目录是新建的app。通过form_demo下的urls.py的路由管理之后可能新建的更多的app
3.建立应用:
为了在项目中开发符合 MVC 架构的实际应用程序,我们需要在项目中建立 Django 应用
每个 Django 项目可以包含多个 Django 应用。建立应用的语法如下:
我这里的python默认python2所以使用python3的语法时用python3
python3 manage.py startapp 应用名称
其中的 manage.py 是建立项目时在项目目录中产生的命令行工具, startapp 是命令的关键字,
举例如下:
cd form_demo
python rnanage.py startapp front
命令完成后会在项目目录中建立如下目录及文件结构:
对其中的文件功能解析如下。
•__init__.py :其中暂无内容,该文件的存在使得 app 成为 一个 Python 包。
• admin.py : 管理站点模型 的声明文件,默认为 空。
• apps.py :应用信息定义文件 。在其中生成了类 AppConfig ,该类用于定义应用名 等 Meta
数据。
• migrations 包:用于在之后定义引用迁移功能 。
• models.py :添加模型层数据类的文件 。
• tests.py :测试代码文件。
• views.py :定义 URL 响应函数
urls.py是新建的文件。
4.建立基本的视图响应:
首先在 form_demo/front/views.py 中建立一个路由 响应应函数:
from django.shortcuts import render
from django.http import HttpResponsefrom datetime import datetimedef welcome(request):print("welcome to my tiny twintter!")return HttpResponse("<h1>Welcome to my tiny twintter!</h1>")def index(request):print("index")return render(request,'index.html')def baidu(request):print("baidu")context = {'title':'baidu','content':'baidu','books':[{'name':'三国演义','author':'罗贯中','price':'100'},{'name':'水浒传','author':'施耐庵','price':'200'}],'user':{'name':'张三','age':20,'sex':'男','height':190}}return render(request,'baidu.html',context)def url(request):print("url")return render(request,'url.html')def filter(request):print("filter")greet = 'hello world, hell Django!'context = {'greet':greet,'birthday':datetime.now()}return render(request,'filter.html',context)
接下来,要通过 URL 映射将用户的 HTTP 访问与该函数绑定起来。
在 form_demo/front/目录中新建一个 urls.py 文件,管理应用 app 中的所有 URL 映射,其文件
内容为:
from . import viewsfrom django.contrib import admin
from django.urls import pathurlpatterns = [path('',views.welcome,name='first-url'),path('index',views.index,name='index'),path('baidu',views.baidu,name='baidu'),path('url',views.url,name='url'),path('filter',views.filter,name='filter')
]
在项目 URL 文件 form_demo/urls.py 的 urlpatterns 中增加 一项,声明对应用 app 中 urls.py
文件的引用,代码如下:
urlpatterns = [path('admin/', admin.site.urls),path('app/',include('app.urls')), # 新增
]
通过以上配置和编码过程,就可以在网站验证效果了。查看网站效
果首先需要通过 manage.py 启动 Web 服务器,代码如下 :
$ python3 manage.py runserver 0.0.0.0:9000
Watching for file changes with StatReloader
Performing system checks...System check identified no issues (0 silenced).
February 06, 2025 - 09:34:28
Django version 4.2.18, using settings 'djangosite.settings'
Starting development server at http://0.0.0.0:9000/
Quit the server with CONTROL-C.
启动 Web 服务器后即可通过浏览器访问 http://localhost:9000/app/检验欢迎消息,
其他url也可以修改ip地址进行验证!