WEB框架之---Django初级篇

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
RDS MySQL Serverless 高可用系列,价值2615元额度,1个月
简介:

一、下载与安装(Windows版)

    下载地址:https://www.djangoproject.com/download/

    或者通过命令:pip install django==1.11.2进行安装(Python3使用pip3)推荐使用此版本


    安装完成后找到django-admin.exe所在的路径,将其添加到环境变量Path中,以便于今后在任何位置运行命令。


二、创建django程序


    1、终端方式创建

1
2
    django - admin startproject my_site
    #创建一个名称为my_site的django程序,即文件夹,在哪个目录执行命令即在那个目录创建

     执行成功之后会生成如图目录结构:

wKioL1lSB2ShsXwBAAC2OQb5dGg897.png

1
     执行:python manage.py runserver  127.0 . 0.1 : 8000

       这时,django已经在本地跑起来了...

    

    其他常用命令:

      python manage.py runserver 0.0.0.0  #不限定IP和端口
      python manage.py startapp appname #在项目中创建app即不同的功能模块
      python manage.py syncdb                  #同步数据库
      python manage.py makemigrations    #基于当前的model创建新的迁移策略文件
      python manage.py migrate               #用于执行迁移动作

          python manage.py createsuperuser     #创建超级管理员

    注:migration是基于App的, 因此, 我们可以针对某些app不启用migration功能 

    2、IDE方式创建django项目

        工具:pycharm

        步骤:File---NewProject---Django---选择好Python解释器然后点击“create”即可搞定


三、配置

    1、配置数据库

1
2
3
4
5
6
7
8
9
10
DATABASES  =  {
     'default' : {
     'ENGINE' 'django.db.backends.mysql' ,
     'NAME' : 'dbname' ,
     'USER' 'root' ,
     'PASSWORD' 'xxx' ,
     'HOST' : '',
     'PORT' : '',
     }
}

    可在与项目名同名的目录中找到settings.py文件然后将默认的DATABASES项进行修改,Django支持多种数据库,上述为mysql配置方式,详情请参考官方文档

    另外,Django默认的连接mysql的模块为MysqlDB,而python3中还没有此模块,需要使用pymysql,这时需要在__init__.py中导入pymysql并设置

1
2
import  pymysql
pymysql.install_as_MySQLdb()


    2、模板配置

1
2
3
TEMPLATE_DIRS  =  (
         os.path.join(BASE_DIR, 'templates' ),
     )

    此项一般不用设置,了解其是放置模板文件(html)的即可

    3、静态文件路径

1
2
3
STATICFILES_DIRS  =  (
         os.path.join(BASE_DIR, 'static' ),
     )

     此目录放置网站所用到的图片、媒体、样式、插件等文件

    4、刚接触django,建议先注释掉settings.py文件中的以下一行,后面做以解释,不然测试时有可能出现错误

1
MIDDLEWARE中的: # 'django.middleware.csrf.CsrfViewMiddleware',


四、路由系统

    所谓路由,其实就是路径,导向,即一个URL请求来到服务器端之后,django怎么取匹配这个url并且得需要判断这个url具体应该访问到哪些资源或者定位到哪个地方,然后再由相应的地方处理此请求并且返回给客户端。

    1、单一路由对应:一个url对应一个处理函数,即

1
     url(r '^index$' , views.index),

    2、基于正则的路由

1
2
     url(r '^index/(\d*)' , views.index),
     url(r '^manage/(?P<name>\w*)/(?P<id>\d*)' , views.manage),

    3、添加额外的参数

1
     url(r '^manage/(?P<name>\w*)' , views.manage,{ 'id' : 333 }),

    4、为路由映射设置名称

1
2
     url(r '^home' , views.home, name = 'h1' ),
     url(r '^index/(\d*)' , views.index, name = 'h2' ),

设置名称之后,可以在不同的地方调用,如:

  • 模板中使用生成URL     {% url 'h2' 2012 %}

  • 函数中使用生成URL     reverse('h2', args=(2012,))      路径:django.urls.reverse

  • Model中使用获取URL  自定义get_absolute_url() 方法

    5、根据app对路由规则进行分类(路由分发)

1
     url(r '^web/' ,include( 'web.urls' )),

    django中的路由系统和其他语言的框架有所不同,在django中每一个请求的url都要有一条路由映射,这样才能将请求交给对一个的view中的函数去处理。其他大部分的Web框架则是对一类的url请求做一条路由映射,从而是路由系统变得简洁。


五、admin

    django amdin是django提供的一个后台管理页面,改管理页面提供完善的html和css,使得你在通过Model创建完数据库表之后,就可以对数据进行增删改查,而使用django admin 则需要以下步骤:

  • 创建后台管理员

  • 配置url

  • 注册和配置django admin后台管理页面


    1、创建后台管理员

1
     python manage.py createsuperuser

    2、配置后台管理url

1
     url(r '^admin/' , include(admin.site.urls))

    3、注册和配置django admin后台管理页面

    admin.py中执行如下代码:

1
2
3
4
5
     from  django.contrib  import  admin
       
     from  app01  import   models
       
     admin.site.register(models.UserType)

    另外,还可通过Bootstrap给后台管理页面添加样式,让页面好看起来



本文转自 AltBoy 51CTO博客,原文链接:http://blog.51cto.com/altboy/1942465

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 数据采集
Django框架的表单验证和过滤机制的原理是什么?
Django框架的表单验证和过滤机制的原理是什么?
108 73
|
2月前
|
监控 安全 测试技术
Django框架的表单验证和过滤机制是否可以应对复杂的安全场景?
综上所述,Django 框架的表单验证和过滤机制在一定程度上可以应对复杂的安全场景,但需要综合运用多种手段来进一步提升安全性,以适应不断变化的安全挑战。
117 52
|
2月前
|
数据采集 中间件 Python
如何在Django框架中进行输入验证和过滤?
通过综合运用这些方法,可以在 Django 框架中有效地进行输入验证和过滤,提高应用的安全性和数据质量。同时,还可以根据具体的业务需求进一步扩展和定制验证逻辑。
133 65
|
3月前
|
搜索推荐 API 开发者
Django框架和Flask框架的适用场景分别是什么?
总体而言,Django 更适合需要全面功能和大规模开发的场景,而 Flask 则更适合灵活性要求高、小型项目或特定需求的开发。当然,具体的选择还应根据项目的具体情况、团队的技术能力和偏好等因素来综合考虑。在实际应用中,开发者可以根据项目的特点和需求,灵活选择使用这两个框架,或者结合它们的优势来构建更强大的 Web 应用程序。
161 64
|
3月前
|
开发框架 搜索推荐 数据可视化
Django框架适合开发哪种类型的Web应用程序?
Django 框架凭借其强大的功能、稳定性和可扩展性,几乎可以适应各种类型的 Web 应用程序开发需求。无论是简单的网站还是复杂的企业级系统,Django 都能提供可靠的支持,帮助开发者快速构建高质量的应用。同时,其活跃的社区和丰富的资源也为开发者在项目实施过程中提供了有力的保障。
158 62
|
3月前
|
开发者 数据库管理 Python
Django框架和Flask框架的区别
总体而言,Django 适合需要快速搭建大型应用的开发者,而 Flask 则更适合有特定需求和追求灵活性的开发者。
174 64
|
3月前
|
安全 前端开发 数据库
Django框架
总的来说,Django 是一个非常优秀的 Web 框架,它为开发者提供了坚实的基础和丰富的功能,使得构建高质量的 Web 应用变得更加容易和高效。无论是初学者还是经验丰富的开发者,都可以从中受益,利用它来实现自己的创意和想法。
129 60
|
3月前
|
Python
Django 框架的路由系统
Django 框架的路由系统
130 63
|
3月前
|
API 数据库 开发者
深度剖析Django/Flask:解锁Web开发新姿势,让创意无限延伸!
在Web开发领域,Django与Flask如同两颗璀璨的星辰,各具特色。Django提供全栈解决方案,适合快速开发复杂应用;Flask则轻量灵活,适合小型项目和API开发。本文通过问答形式,深入解析两大框架的使用方法和选择策略,助你解锁Web开发新技能。
65 2
|
3月前
|
设计模式 前端开发 数据库
Python Web开发:Django框架下的全栈开发实战
【10月更文挑战第27天】本文介绍了Django框架在Python Web开发中的应用,涵盖了Django与Flask等框架的比较、项目结构、模型、视图、模板和URL配置等内容,并展示了实际代码示例,帮助读者快速掌握Django全栈开发的核心技术。
269 45

热门文章

最新文章

  • 1
    Burp Suite Professional 2025.2 (macOS, Linux, Windows) - Web 应用安全、测试和扫描
    23
  • 2
    AppSpider Pro 7.5.015 for Windows - Web 应用程序安全测试
    19
  • 3
    【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
    54
  • 4
    部署使用 CHAT-NEXT-WEB 基于 Deepseek
    327
  • 5
    【2025优雅草开源计划进行中01】-针对web前端开发初学者使用-优雅草科技官网-纯静态页面html+css+JavaScript可直接下载使用-开源-首页为优雅草吴银满工程师原创-优雅草卓伊凡发布
    26
  • 6
    java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
    39
  • 7
    零基础构建开源项目OpenIM桌面应用和pc web- Electron篇
    28
  • 8
    【01】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-硬件设备实时监控系统运营版发布-本产品基于企业级开源项目Zabbix深度二开-分步骤实现预计10篇合集-自营版
    20
  • 9
    FastAPI与Selenium:打造高效的Web数据抓取服务 —— 采集Pixabay中的图片及相关信息
    53
  • 10
    springSecurity学习之springSecurity过滤web请求
    60