Python Web 框架:Django MVC搭建
为什么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搭建相关推荐
- Python Web框架 Django项目搭建与测试详解
Django项目搭建 0. 项目准备: python:(目前更新到3.9了),下载地址: 点此下载python https://www.python.org/downloads/ python解释器: ...
- 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 ...
- Python Web框架Django学习(二)
python web框架Django学习(二) 目录: 三.Django创建APP 四.创建登录页面,实现用户交互,后台管理用户(非数据库方式) ========================= ...
- Python web框架Django学习(1)
2019独角兽企业重金招聘Python工程师标准>>> 1.Django简介 (1)Python下有许多款不同的 Web 框架.Django是重量级选手中最有代表性的一位.许多成功的 ...
- 基于Python web框架Django+Bootstrap的房源推荐系统
哈喽,大家好呀,本次给大家推荐一个房源推荐系统,以成都市的某几个区的数据为例,仿链接平台,主要业务逻辑是: 1)将链家的数据爬取下来存储为Json文件 2)Json文件向前端JavaScript传递参 ...
- Python Web 框架-Django day05
目录 1.F查询和Q查询 2.原生的数据库操作方法 3.使用后台管理 models day04 1.增加数据 Entry.objects.create(属性=值) 返回值:创建好的实体对象 创建实体对 ...
- Python Web框架Tornado的异步处理代码演示样例
1. What is Tornado Tornado是一个轻量级但高性能的Python web框架,与还有一个流行的Python web框架Django相比.tornado不提供操作数据库的ORM接口 ...
- Python Web前后端分离框架Django+Vue搭建
Python Web前后端分离框架Django+Vue搭建 对前面所学知识的归纳整理,感兴趣的可以看看,欢迎指正. 一.前后端分离框架介绍 本项目基于 Python 的 Web 框架开发,采用前后端分 ...
- 师傅带徒弟学:Python Web之Django框架-关东升-专题视频课程
师傅带徒弟学:Python Web之Django框架-475人已学习 课程介绍 Python Web是Python语言一个重要的应用方面,Python Web有很多,其中Flask和D ...
- python web框架互相融合, Pyramid或取代Django
Django用久了,难免会感觉到自由度不够.不可否认,这种自由度的牺牲能够带来一些好处.比如,一体化的框架(full-stack framework)能够提供全面的solution,你不需要再为cac ...
最新文章
- 翻译翻译:什么叫架构?
- MongoDB修改删除数据
- 动态主机配置协议服务器不能提供,计算机网络基础课程—动态主机配置协议(Dhcp)...
- java计算两地距离(公里)
- Java连接postgresql数据库
- warning C4828问题的处理
- python读取多行json_如何在Python中读取包含多个JSON对象的JSON文件?
- POPTEST老李谈Debug和Release的区别(c#) 1
- linux重启gpu_远程配置Ubuntu深度学习服务器GPU驱动+Docker+CUDA多个版本
- 【超级账本】Fabric 层次结构以及核心模块的介绍(二)
- VastBase技术实践
- Docker:镜像加速器
- spring boot 作业管理系统
- h5 加载完成_开业通知朋友圈怎么写?新店开业宣传H5
- 基于LSTM网络的视觉识别研究与实现——详细版
- 逆水寒服务器维护,逆水寒11月29日更新到几点进游戏 逆水寒更新维护公告
- 同步挤压s变换matlab,同步挤压广义S变换信号时频分解与重构方法与流程
- 01《JAVA从零到壹》第一讲:Java编程基础(文末有课后作业)
- UE4 材质切换(带动画效果)
- 【英语0基础·读音】Day 2 开闭音节的元音音标
热门文章
- HDU 1498:50 years, 50 colors(二分图匹配)
- python弹幕代码_只需3 行代码就可以获取B站(弹幕、评论、用户)数据
- 计算机网络第一章:计算机网络概述
- 【Linux 内核 内存管理】Linux 内核堆内存管理 ② ( 动态分配堆内存方式 | brk 系统调用 | mmap 系统调用 | brk 系统调用源码介绍 )
- 【数字信号处理】周期序列 ( 正弦序列特性 | 单个模拟周期采集 m 个数字样本 | Q 个模拟周期采集 P 个数字样本 | 非周期序列的情况 | 数字信号周期 )
- 【EventBus】EventBus 使用示例 ( 最简单的 EventBus 示例 )
- 【Android 事件分发】事件分发源码分析 ( ViewGroup 事件传递机制 三 )
- 正向代理反向代理 简(fu)明(za)解释
- 【bzoj 2002】弹飞绵羊
- windows 域用户账号验证登陆