为什么80%的码农都做不了架构师?>>>   

安装 Django

  • 命令:

pip install Django

  • 检验:

pythonimport djangodjango.get_version()

创建第一个项目

  • 命令:

django-admin.py startproject projectName

创建完成后文件目录:

   |-- projectName     # 项目的容器。|   |-- __init__.py # 一个空文件,告诉 Python 该目录是一个 Python 包|   |-- settings.py # 该 Django 项目的设置/配置|   |-- urls.py     # 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"|   `-- wsgi.py     # 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目`-- manage.py       # 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互

启动服务器

  • 用如下命令启动服务:

python manage.py runserver 0.0.0.0:8000

  • 在浏览器端输入 http:\127.0.0.1:8000 ,得到 django 初始页面。

视图和 URL 配置

  • ge:

    • 在项目文件夹下(E:/projectName/projectName)新建一个 view.py 文件

      from django.http import HttpResponsedef hello(request):return HttpResponse("Hello world ! ")
    • 绑定 URL 与视图函数:打开 urls.py 文件,删除原来代码

      from django.conf.urls import url from . import view
      ​
      urlpatterns = [
      url() 可以接收四个参数
      @ regex: 正则表达式,与之匹配的 URL 会执行对应的第二个参数 view。
      @ view: 用于执行与正则表达式匹配的 URL 请求。
      @ kwargs: 视图使用的字典类型的参数。
      @ name: 用来反向获取 URL。
      ```
      url(r'^$', view.hello),
      ]
    • 启动 Django 开发服务器,并在浏览器访问打开浏览器并访问 http:\127.0.0.1:8000

Django 模板

  • 在 projectName 创建文件(templates),并建立 index.html 文件

输入代码

<h1>{{ hello }}</h1>

  • 修改模板文件 settings.py 里 TEMPLATES 中的 DIRS 值为 [BASE_DIR+"/templates",]

...TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates','DIRS': [BASE_DIR+"/templates",],       # 修改位置'APP_DIRS': True,'OPTIONS': {'context_processors': ['django.template.context_processors.debug','django.template.context_processors.request','django.contrib.auth.context_processors.auth','django.contrib.messages.context_processors.messages',],},},
]
  • 修改 view.py

# -- coding: utf-8 --
# from django.http import HttpResponse
from django.shortcuts import render
​
def hello(request):
​context          = {}context['hello'] = 'Hello World!'return render(request, 'hello.html', context)
  • 访问 http://127.0.0.1:8000/index ,得到网页

这样我们就完成了数据与视图的分离

Django 模板标签

  • 基本格式:{% 关键字 %}

  • ge:

{% if condition1 %}... display 1
{% elif condition2 %}... display 2
{% else %}... display 3
{% endif %}
{% for athlete in athlete_list %}<li>{{ athlete.name }}</li>
{% endfor %}
{% for athlete in athlete_list %}<h1>{{ athlete.name }}</h1><ul>{% for sport in athlete.sports_played %}<li>{{ sport }}</li>{% endfor %}</ul>
{% endfor %}

Django 模型

Django 对各种数据库提供了很好的支持,包括:PostgreSQL、MySQL、SQLite、Oracle。

  • 步骤:

    • 安装相应数据库驱动,如下以 mysql 为例

      • 命令 pip install mysqlclient pip install psycopg2

    • 数据库配置,在项目setting.py 中找到 DATABASES 配置项,修改为:

      # projectName/projectName/settings.py: 文件代码
      ​
      DATABASES = {
      ​
      'default': {'ENGINE': 'django.db.backends.mysql',  # 或者使用 mysql.connector.django'NAME': 'test','USER': 'test','PASSWORD': 'test123','HOST':'localhost','PORT':'3306',}
      }
    • 定义模块:

      Django规定,如果要使用模型,必须要创建一个app。我们使用以下命令创建一个 TestModel 的 app

      • 在 projectName/ 下使用命令:django-admin.py startapp TestModel

   - 在models.py 文件中创建模型,如
​```# projectName/model/models.pyfrom django.db import models'''''类名代表了数据库表名字段代表数据表中的字段(name)数据类型@ CharField(相当于varchar)@ DateField(相当于datetime)@ max_length 参数限定长度'''''''class Test(models.Model):name = models.CharField(max_length=20)```
​
- 在settings.py中找到INSTALLED_APPS这一项,添加model
​```INSTALLED_APPS = (
​'django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','TestModel',               # 添加此项)```

资源文件的加载

在 projectName/ 文件夹下建 static 文件,并在setting.py 中加入如下配置

# 静态文件
STATIC_URL = '/static/'
STATICFILES_DIRS = (os.path.join(BASE_DIR, 'static'),)

最终项目结构如下:

|-- projectName|-- projectName     # 项目的容器。|   |-- init.py     # 一个空文件,告诉 Python 该目录是一个 Python 包|   |-- settings.py # 该 Django 项目的设置/配置|   |-- urls.py     # 该 Django 项目的 URL 声明; 一份由 Django 驱动的网站"目录"|   `-- wsgi.py     # 一个 WSGI 兼容的 Web 服务器的入口,以便运行你的项目|-- model|   |-- models.py   # 与数据库表对应的model|   |-- ....|-- templates|   |-- html        # html 视图文件|   |-- index.html  # 平台首页|-- static          # js \ css \ img 等资源文件`-- README.md       # 项目文档`-- manage.py       # 一个实用的命令行工具,可让你以各种方式与该 Django 项目进行交互

转载于:https://my.oschina.net/dwqdwd/blog/1787753

Python Web 框架:Django MVC搭建相关推荐

  1. Python Web框架 Django项目搭建与测试详解

    Django项目搭建 0. 项目准备: python:(目前更新到3.9了),下载地址: 点此下载python https://www.python.org/downloads/ python解释器: ...

  2. python搭建django框架,Python之Web框架Django项目搭建全过程

    Python之Web框架Django项目搭建全过程 IDE说明: Win7系统 Python:3.5 Django:1.10 Pymysql:0.7.10 Mysql:5.5 注:可通过pip fre ...

  3. Python Web框架Django学习(二)

    python web框架Django学习(二) 目录:  三.Django创建APP  四.创建登录页面,实现用户交互,后台管理用户(非数据库方式) ========================= ...

  4. Python web框架Django学习(1)

    2019独角兽企业重金招聘Python工程师标准>>> 1.Django简介 (1)Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的 ...

  5. 基于Python web框架Django+Bootstrap的房源推荐系统

    哈喽,大家好呀,本次给大家推荐一个房源推荐系统,以成都市的某几个区的数据为例,仿链接平台,主要业务逻辑是: 1)将链家的数据爬取下来存储为Json文件 2)Json文件向前端JavaScript传递参 ...

  6. Python Web 框架-Django day05

    目录 1.F查询和Q查询 2.原生的数据库操作方法 3.使用后台管理 models day04 1.增加数据 Entry.objects.create(属性=值) 返回值:创建好的实体对象 创建实体对 ...

  7. Python Web框架Tornado的异步处理代码演示样例

    1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比.tornado不提供操作数据库的ORM接口 ...

  8. Python Web前后端分离框架Django+Vue搭建

    Python Web前后端分离框架Django+Vue搭建 对前面所学知识的归纳整理,感兴趣的可以看看,欢迎指正. 一.前后端分离框架介绍 本项目基于 Python 的 Web 框架开发,采用前后端分 ...

  9. 师傅带徒弟学:Python Web之Django框架-关东升-专题视频课程

    师傅带徒弟学:Python Web之Django框架-475人已学习 课程介绍         Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和D ...

  10. python web框架互相融合, Pyramid或取代Django

    Django用久了,难免会感觉到自由度不够.不可否认,这种自由度的牺牲能够带来一些好处.比如,一体化的框架(full-stack framework)能够提供全面的solution,你不需要再为cac ...

最新文章

  1. 翻译翻译:什么叫架构?
  2. MongoDB修改删除数据
  3. 动态主机配置协议服务器不能提供,计算机网络基础课程—动态主机配置协议(Dhcp)...
  4. java计算两地距离(公里)
  5. Java连接postgresql数据库
  6. warning C4828问题的处理
  7. python读取多行json_如何在Python中读取包含多个JSON对象的JSON文件?
  8. POPTEST老李谈Debug和Release的区别(c#) 1
  9. linux重启gpu_远程配置Ubuntu深度学习服务器GPU驱动+Docker+CUDA多个版本
  10. 【超级账本】Fabric 层次结构以及核心模块的介绍(二)
  11. VastBase技术实践
  12. Docker:镜像加速器
  13. spring boot 作业管理系统
  14. h5 加载完成_开业通知朋友圈怎么写?新店开业宣传H5
  15. 基于LSTM网络的视觉识别研究与实现——详细版
  16. 逆水寒服务器维护,逆水寒11月29日更新到几点进游戏 逆水寒更新维护公告
  17. 同步挤压s变换matlab,同步挤压广义S变换信号时频分解与重构方法与流程
  18. 01《JAVA从零到壹》第一讲:Java编程基础(文末有课后作业)
  19. UE4 材质切换(带动画效果)
  20. 【英语0基础·读音】Day 2 开闭音节的元音音标

热门文章

  1. HDU 1498:50 years, 50 colors(二分图匹配)
  2. python弹幕代码_只需3 行代码就可以获取B站(弹幕、评论、用户)数据
  3. 计算机网络第一章:计算机网络概述
  4. 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
  5. 【数字信号处理】周期序列 ( 正弦序列特性 | 单个模拟周期采集 m 个数字样本 | Q 个模拟周期采集 P 个数字样本 | 非周期序列的情况 | 数字信号周期 )
  6. 【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 )
  7. 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 三 )
  8. 正向代理反向代理 简(fu)明(za)解释
  9. 【bzoj 2002】弹飞绵羊
  10. windows 域用户账号验证登陆