当前位置: 首页 > article >正文

Django的初步使用

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 HttpResponse

from datetime import datetime

def 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 views

from django.contrib import admin
from django.urls import path


urlpatterns = [
    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地址进行验证!


http://www.kler.cn/a/558156.html

相关文章:

  • Python基于Django的广州、北京、杭州二手房房价可视化分析系统(附源码)
  • 【再谈设计模式】迭代器模式~遍历集合元素的利器
  • relief=tk.RAISED详细介绍 relief是指定控件的边框样式
  • 【练习】【回溯:组合:一个集合 元素可重复】力扣 39. 组合总和
  • 敏捷开发07:敏捷项目可视化管理-ScrumBoard(Scrum板)使用介绍
  • 论文略读:Uncovering Hidden Representations in Language Models
  • 分类解析决策模型
  • 快速定位并优化CPU 与 JVM 内存性能瓶颈
  • 学习Linux准备2
  • figure机器人技术架构的演进初探——Helix人形机器人控制的革新
  • PL/SQL 异常处理
  • 无人机挂载5G通信基站网络恢复技术详解
  • WordPress自定义排序插件:Simple Custom Post Order完全指南(SEO优化版)
  • 前端面试-JavaScript 数据类型详解
  • asp.net mvc、webform 跨域问题
  • 手机怎样玩电脑游戏?
  • 搭建一个基于Django框架的WebApi项目
  • [Android]如何查看APK是使用的什么签名方案
  • 安全面试2
  • 单例模式代码示例