WEB框架之---Django初级篇

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介:

一、下载与安装(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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
API 数据库 数据安全/隐私保护
利用Django框架构建高效后端API服务
本文将介绍如何利用Django框架构建高效的后端API服务。通过深入分析Django框架的特性和优势,结合实际案例,探讨了如何利用Django提供的强大功能来构建高性能、可扩展的后端服务。同时,还对Django框架在后端开发中的一些常见问题进行了解决方案的探讨,并提出了一些建设性的建议。
52 3
|
17天前
|
安全 数据库 C++
Python Web框架比较:Django vs Flask vs Pyramid
【4月更文挑战第9天】本文对比了Python三大Web框架Django、Flask和Pyramid。Django功能全面,适合快速开发,但学习曲线较陡;Flask轻量灵活,易于入门,但默认配置简单,需自行添加功能;Pyramid兼顾灵活性和可扩展性,适合不同规模项目,但社区及资源相对较少。选择框架应考虑项目需求和开发者偏好。
|
2天前
|
开发框架 前端开发 数据库
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
Python从入门到精通:3.3.2 深入学习Python库和框架:Web开发框架的探索与实践
|
11天前
|
前端开发 数据挖掘 API
使用Python中的Flask框架进行Web应用开发
【4月更文挑战第15天】在Python的Web开发领域,Flask是一个备受欢迎的轻量级Web框架。它简洁、灵活且易于扩展,使得开发者能够快速地构建出高质量的Web应用。本文将深入探讨Flask框架的核心特性、使用方法以及在实际开发中的应用。
|
13天前
|
设计模式 存储 数据库
框架分析(5)-Django
框架分析(5)-Django
|
23天前
|
前端开发 安全 Java
使用Java Web框架:Spring MVC的全面指南
【4月更文挑战第3天】Spring MVC是Spring框架的一部分,用于构建高效、模块化的Web应用。它基于MVC模式,支持多种视图技术。核心概念包括DispatcherServlet(前端控制器)、HandlerMapping(请求映射)、Controller(处理请求)、ViewResolver(视图解析)和ModelAndView(模型和视图容器)。开发流程涉及配置DispatcherServlet、定义Controller、创建View、处理数据、绑定模型和异常处理。
使用Java Web框架:Spring MVC的全面指南
|
27天前
|
前端开发 JavaScript 数据管理
描述一个使用Python开发Web应用程序的实际项目经验,包括所使用的框架和技术栈。
使用Flask开发Web应用,结合SQLite、Flask-SQLAlchemy进行数据管理,HTML/CSS/JS(Bootstrap和jQuery)构建前端。通过Flask路由处理用户请求,模块化代码提高可维护性。unittest进行测试,开发阶段用内置服务器,生产环境可选WSGI服务器或容器化部署。实现了用户注册登录和数据管理功能,展示Python Web开发的灵活性和效率。
14 4
|
1月前
|
数据库
最全三大框架整合(使用映射)——struts.xml和web.xml配置
最全三大框架整合(使用映射)——数据库资源文件jdbc.properties
10 0
|
1月前
|
前端开发 API 网络架构
Python 如何开发出RESTful Web接口,DRF框架助力灵活实现!
Python 如何开发出RESTful Web接口,DRF框架助力灵活实现!
|
1月前
|
XML JSON API
通过Flask框架创建灵活的、可扩展的Web Restful API服务
通过Flask框架创建灵活的、可扩展的Web Restful API服务