常见python web开发框架:
web.py
Django
Pylons
Tornado
Bottle

django菜鸟教程

一、django项目创建与启动

1.安装django     pip install django==1.10.1pip list查看是否安装成功2.新建django项目   进入某个文件夹,CMD命令:django-admin startproject pythonDemo2测试:在该文件夹下生成一个pythonDemo2的文件夹3.运行项目  命令行方式:在django项目目录(有manage.py文件的那个目录),命令 python manage.py runserver 0.0.0.0:8000按钮方式(debug模式)1.edit configuration,点击+号,选择python2.script path选择manage.py文件,parameters填写 runserver,点击apply,ok3.debug按钮运行项目测试:浏览器http://127.0.0.1:8000/ 访问项目http://127.0.0.1:8000/admin 访问管理工具  账号密码用命令创建 python manage.py createsuperuser root  root4.创建应用(一个项目包含多个应用,可以理解为模块功能)还是在有manage.py文件的那个目录 python manage.py startapp dy测试:多个dy的文件夹

二、接口创建返回内容

返回json数据

1.路由文件定义请求路径  urls.pyurlpatterns = [path('admin/', admin.site.urls),path('', HomePage.get_html),path('user/find', User.find),path('user/add', User.add),re_path(r'^user/deleteById/(.+)$', User.delete),path('user/update', User.update),]2.dy应用文件夹找到User.py,添加如下函数from django.core import serializersfrom django.http import HttpResponse  from dy.models import *def find(request):method = request.methodif method == 'GET':user__model_list = UserModel.objects.all()json_data = serializers.serialize('json', user__model_list)return HttpResponse(json_data, content_type="application/json")def add(request):method = request.methodif method == "POST":# 获取数据json_str = request.bodyjson_dict = json.loads(json_str)title = json_dict.get("title")content = json_dict.get("content")# 封装成modeluser_model = UserModel(title=title, content=content)# 保存user_model.save()# 返回json_data = user_model.to_json()return HttpResponse(json_data, content_type="application/json")def delete(request, user_id):method = request.methodif method == "DELETE":user = UserModel.objects.get(id=user_id)result = user.delete()return HttpResponse(result, content_type="application/json")def update(request):method = request.methodif method == "POST":# 获取数据json_str = request.bodyjson_dict = json.loads(json_str)id = json_dict.get("id")title = json_dict.get("title")content = json_dict.get("content")# 更新user_model = UserModel.objects.filter(id=id)update_count = UserModel.objects.filter(id=id).update(title=title, content=content)return HttpResponse(update_count, content_type="application/json")UserModel单个对象转成json数据:1.models.py文件里面Claass UserModel添加to_json方法import jsondef to_json(self):     return json.dumps(dict([(attr, getattr(self, attr)) for attr in [f.name for f in self._meta.fields]]))2.业务层 UserModel调用to_json()方法user_model = UserModel(title='职位1', content='内容1')user_model.save()json_data = user_model.to_json()return HttpResponse(json_data, content_type="application/json")UserModel集合转成json数据:from django.core import serializersdef find(request):user__model_list = UserModel.objects.all()json_data = serializers.serialize('json', user__model_list)return HttpResponse(json_data, content_type="application/json")

返回html文件

1.路由文件定义请求路径  urls.pyfrom django.contrib import adminfrom django.urls import path    from dy import viewsurlpatterns = [path('admin/', admin.site.urls),path('', views.get_html),path('getUser', views.get_user)]2.dy应用文件夹找到views.py,添加如下函数from django.http import HttpResponsefrom django.shortcuts import renderimport jsondef get_html(request):return render(request,'test.html')3.在templates目录创建test.html页面要先创建html文件的目录templates并配置这个目录步骤1创建目录:应用dy目录下添加包templates步骤2配置目录:项目配置文件settings.py添加应用名称和模板INSTALLED_APPS = [,'dy']TEMPLATES = [{'DIRS': ['templates'],},]

三、路由 分发/参数传递/POST

1.路由分发,每个app有自己的路由文件

见菜鸟教程

2.参数传递

from django.urls import path
from django.urls import re_path
from dy.function import Userurlpatterns = [   re_path(r'^user/deleteById/(.+)$', User.delete),  #路径里面传递参数  user/deleteById/14path('user/find', User.find),                     #问号后面的参数和body里面的参数在这边都没体现
]获取参数1.路径里面的参数def delete(request, param1):  #路径里面的参数值获取user = UserModel.objects.get(id=param1)result = user.delete()return HttpResponse(result, content_type="application/json")2.问号后面的参数def find(request):   #问号后面的参数值获取title = request.GET.get('title')  #不管是get还是post,问号后面的参数值都这样获取content = request.GET.get('content')user__model_list = UserModel.objects.all()json_data = serializers.serialize('json', user__model_list)return HttpResponse(json_data, content_type="application/json")3.body里面的数据def add(request):# 获取数据json_str = request.bodyjson_dict = json.loads(json_str)title = json_dict.get("title")content = json_dict.get("content")# 封装成modeluser_model = UserModel(title=title, content=content)

3. post delete方法

1.默认只支持get,如果要支持POST DELETE等其他,settings文件里面MIDDLEWARE注释掉CsrfViewMiddlewareMIDDLEWARE = ['django.middleware.security.SecurityMiddleware','django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware',# 'django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',]2.url知道的函数里面根据request.method判断做处理def find(request):method = request.methodif method == 'GET':user__model_list = UserModel.objects.all()json_data = serializers.serialize('json', user__model_list)return HttpResponse(json_data, content_type="application/json")else:return HttpResponse(method, content_type="application/json")

四、mysql数据库操作

1.配置数据库信息

项目文件夹pythonDemo2下settings.py文件
DATABASES = {'default': {'ENGINE': 'django.db.backends.mysql',  # 引擎用mysql'NAME': 'conventional-station',        # 数据库里面的一个库'HOST': '10.10.4.129','PORT': '3306''USER': 'root','PASSWORD': '6287@fjyf.com'}
}如果改了数据库引擎启动报错提示:ModuleNotFoundError: No module named 'MySQLdb'a.安装mysql驱动模块:pip install PyMySQLb.项目文件夹pythonDemo2下的__init__.py文件添加如下内容import pymysqlpymysql.install_as_MySQLdb()

2.声明表的字段信息

应用文件夹dy下models.py文件class UserModel(models.Model):  # 创建数据库和对数据的增删改查操作,创建出来的表名是 应用名_类名:dy_user# 声明表的字段id = models.AutoField(primary_key=True)title = models.CharField(max_length=100, null=False)content = models.TextField(null=False)link = models.CharFieldclass DeptModel(models.Model):  # 创建数据库和对数据的增删改查操作,创建出来的表名是 应用名_类名:dy_user# 声明表的字段id = models.AutoField(primary_key=True)title = models.CharField(max_length=100, null=False)content = models.TextField(null=False)link = models.CharField(null=True, max_length=100)测试:在dy目录下生成文件夹migrations文件夹

3.创建映射文件 python manage.py makemigrations dy

python manage.py makemigrations dy  #dy为应用名称,需要在settings.py文件定义过
测试:刷新,在dy目录下就会出现migrations文件夹INSTALLED_APPS = ['django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','dy']

4.创建表 python manage.py migrate

python manage.py migrate
测试:数据库中创建了多个表和自己定义的user表和dept表

5.表数据操作

更多model的增删改查操作查阅菜鸟教程

from django.core import serializers
from django.http import HttpResponsefrom dy.models import *def find(request):user__model_list = UserModel.objects.all()json_data = serializers.serialize('json', user__model_list)return HttpResponse(json_data, content_type="application/json")def add(request):user_model = UserModel(title='职位1', content='内容1')user_model.save()json_data = user_model.to_json()return HttpResponse(json_data, content_type="application/json")def delete(request):# 删除id=1的数据user = UserModel.objects.get(id=12)result = user.delete()return HttpResponse(result, content_type="application/json")def update(request):update_count = UserModel.objects.filter(id=12).update(title='职位12')return HttpResponse(update_count, content_type="application/json")

Python学习(四)后端开发框架django相关推荐

  1. python学习第八天---用Django框架创建可重用注册登录系统

    python学习第八天---用Django框架创建可重用注册登录系统 实现的功能 项目开始前的整体规划 搭建环境完成基础配置 创建app 更改语言和时区 数据库表生成 启动开发服务器 浏览器访问,检测 ...

  2. python学习四(处理数据)

    python学习四(处理数据) head first python中的一个数据处理的例子 有四个U10选手的600米成绩,请取出每个选手跑的最快的3个时间.以下是四位选手的9次成绩 James 2-3 ...

  3. python学习第6天---django框架---模型类及数据库操作

    python学习第6天---django框架---模型类及数据库操作 目录 文章目录 1.字段与选项 2.查询函数 3.查询集 4.模型类之间的关系 4.1.对应关系 4.2.关联查询 5.模型管理器 ...

  4. 基于 Python 的开源Web开发框架django/哈工大学生成绩管理系统html实现/python结课大作业

    python结课大作业 (一)django安装 (1)django是什么 (2)基于django的网站 (3)django的设计理念 (4)django安装 (二)数据库安装 (1)数据库(DataB ...

  5. (零基础)入门python学习四步骤,附上Python全栈学习路线大刚!

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于腾讯云 作者:python学习教程 ( 想要学习Python?Pyt ...

  6. Python web后端开发框架 Django 、Flask、Tornado

    由于Python的简洁 易读 强大 高效  现在Python应用在文件处理.网络编程.数据库编程.游戏.Web开发.数据分析.机器学习等各个领域. 就Web开发而言,为了提高开发效率,应运而生了很多框 ...

  7. python 学习笔记十九 django深入学习四 cookie,session

    缓存 一个动态网站的基本权衡点就是,它是动态的. 每次用户请求一个页面,Web服务器将进行所有涵盖数据库查询到模版渲染到业务逻辑的请求,用来创建浏览者需要的页面.当程序访问量大时,耗时必然会更加明显, ...

  8. python学习四十四天(前端之HTML标签)

    今日主要内容: web标准 浏览器内核 HTML介绍,规范,结构详解 字体标签 排版标签 超链接 图片标签 列表标签 <ul>.<ol>.<dl> 表格标签 < ...

  9. Python学习四: 连接数据库 与 数据清理

    连接数据库 准备工作 楼主这里用的一个轻量级关系型数据库,MySQL (这里楼主安装MySQL的时候遇到了一个小问题,没有兼容服务器,根据这个帖子可以解决这个问题  分享 | 安装 mysql 报错 ...

最新文章

  1. ArrayList 为什么要实现 RandomAccess 接口?
  2. Python 200个标准库汇总
  3. linux怎么进入root文件,linux下安装ROOT过程
  4. Python天天美味(5) - ljust rjust center
  5. Android SurfaceView 的应用
  6. JavaScript高级程序设计学习(四)之引用类型(续)
  7. ZooKeeper学习总结(1)——ZooKeeper入门介绍
  8. “四大设计原则”在排版中的应用
  9. RMQ----不更新点
  10. Android历史与版本变迁
  11. hprose-php教程,Swoole学习笔记(六):Hprose入门
  12. c#调用microsoft word将word另存为pdf
  13. java 刽子手游戏_刽子手游戏(Hangman Judge)
  14. 珠宝行业电子秤串口程序开发
  15. 华三防火墙web端口_华三防火墙开放端口 华三防火墙怎么登录
  16. 倍福beckhoff详细知识库展示
  17. BMS(电池管理系统)第五课 ——核心!!!SOH算法开发
  18. ChatGPT:微软人工智能Office和电邮即将登场...
  19. 现在学校应用较多的计算机学籍管理系统,计算机基础知识选择题500个
  20. 在实验室服务器平台怎么用上jupyter notebook?并进入虚拟环境

热门文章

  1. TiDB Cloud简介
  2. 56个民族的下拉菜单
  3. Think in SAS
  4. unturned进服务器失去位置,unturned服务器地址
  5. python模块下载地址_常用的python模块功能和下载地址
  6. 软件园里的流氓(13)——完
  7. C语言学生成绩管理系统运行退不出来,哭诉、拜求C语言学生成绩管理系统
  8. python中切片是指什么_Python *中的默认切片索引是什么*?
  9. shell脚本案例-登录系统的时候自动显示服务器资源信息脚本
  10. 修改远程计算机 时间,修改远程计算机系统时间