Python3-Django-1.开发环境搭建
官网
https://www.djangoproject.com/
安装
http://www.runoob.com/django/django-install.html
创建项目
方式一(命令行): django-admin statrproject ProjectName
方式二(PyCharm): File -> New Project -> Django -> 选择项目路径 -> Create
创建APP
python manage.py startapp app01
Django URL
静态路由:
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 1.导入views模块 urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello-world/$', views.hello_world), # 2.配置静态路由,指向views中定义的函数
]
动态路由:
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 1.导入views模块 urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello-to/(\w+)$', views.hello_to), # 2.配置动态路由,指向views中的函数
] # 页面访问: http://localhost:8888/hello-to/jack
# 页面响应: Hello,jack !
# 页面访问: http://localhost:8888/hello-to/jet
# 页面响应: Hello,jet !
命名参数:
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 1.导入views模块 urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello-girl/(?P<girl_name>\w+)$', views.hello_girl), # 2.hello_girl函数的参数名字,必须是自定义的girl_name
] # views.py 中的函数
def hello_girl(request, girl_name):
"""
第一个参数必须是request
第二个参数是传递的girl_name
:param request:
:param girl_name:
:return:
"""
return HttpResponse("Hey,Hey,Hey,%s !" % girl_name)
额外参数:
from django.conf.urls import url
from django.contrib import admin
from app01 import views # 1.导入views模块 urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^hello-extra/(\w+)$', views.hello_extra, {"extra_arg1": "bra1", "extra_arg2": "bra2"}), # 2.
]
----------------------------------------------------------------------------
# views.py中的函数,额外的参数名称必须保持一致,且要放在最后
def hello_extra(request, arg, extra_arg1, extra_arg2):
return HttpResponse("Wow,%s %s %s!" % (arg, extra_arg1, extra_arg2))
二级路由:
from django.conf.urls import url, include # 1.导入include
from django.contrib import admin urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^app01/', include("app01.urls")), # 2.指向其他的urls文件
]
Django Views
1.返回一个字符串
from django.shortcuts import render, HttpResponse def return_str(request):
return HttpResponse("Hello!")
2.返回一个html文档
from django.shortcuts import render, HttpResponse def return_html(request):
return render(request, "index.html")
Django Models
1.配置数据库 settings.py
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'NAME': 'muscle',
'HOST': '172.16.110.211',
'PORT': '',
'USER': 'root',
'PASSWORD': '******',
}
} # ------------------------------------------------------------------------#
# 注意,Python3 django使用pymysql连接需要在__init__.py中添加: import pymysql pymysql.install_as_MySQLdb()
MySQL
2.编写ORM实体类 models.py
from django.db import models class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField() class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField() class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()
3.安装模型 settings.py
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'app01', # 加入app的名称
]
4.按照模型配置,生成表结构
python manage.py makemigrations # 生成模型的配置文件
python manage.py migrate # 根据配置文件创建表结构
基本的增删改查
from django.shortcuts import render, HttpResponse
from app01 import models def insert_data(request):
pub = models.Publisher.objects.create(name="北大出版社", address="北京市海淀区", city="海淀区", state_province="北京", country="中国", website="www.peking.com")
return HttpResponse("添加成功") def delete_data(request, pub_id):
models.Publisher.objects.filter(id=pub_id).delete()
return HttpResponse("删除成功") def update_data(request):
models.Publisher.objects.filter(name='北大出版社').update(name="北京大学出版社")
return HttpResponse("修改成功") def select_data(request):
query_set = models.Publisher.objects.all()
# models.Publisher.objects.filter(name="北大出版社")
# models.Publisher.objects.filter(name="北大出版社").first()
# models.Publisher.objects.filter(name__contains="出")
# models.Publisher.objects.filter(id__range=[1, 100])
result_str = ""
for line in query_set:
result_str += line.name
result_str += "<br/>"
return HttpResponse(result_str)
启动服务
python manage.py runserver localhost:8888
Python3-Django-1.开发环境搭建的更多相关文章
- PyQt5+Python3.5.2-32bit开发环境搭建
1.基本环境. Window 8.1 64bit Python3.5.2-32bit.exe PyQt5 2.安装python. 去官网下载32位版本的python3.5.2(就是x86那个) 备 ...
- Django初探--开发环境搭建(笔记)
1. Django框架的安装 (1) 下载Django源码 Django-1.7.11.tar.gz,并解压,网址:https://www.djangoproject.com/download/ (2 ...
- Django之Django简介,开发环境搭建,项目应用创建
软件及Django框架简介 软件框架 一个软件框架是由其中各个软件模块组成的: 每一个模块都有特定的功能: 模块与模块之间通过相互配合来完成软件的开发. 软件框架是针对某一类软件设计问题而产生的. M ...
- Ubuntu下Django初体验(一)——开发环境搭建
一.开发 环境搭建 1. linux下一般有自带的python,如果对版本不满意,可以再自行安装. 2. 安装ipython(推荐) sudo apt-get install ipython sudo ...
- nginx+uwsgi+django开发环境搭建
Nginx+uWSGI+Djangoi开发环境搭建 Django简介,环境搭建 uWSGI简介,安装与配置 Nginx安装与配置 Nginx+uWSGI+Django原理解析 1.django简介,环 ...
- Python3从零开始爬取今日头条的新闻【一、开发环境搭建】
Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...
- python3+ selenium3开发环境搭建-手把手教你安装python(详细)
环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...
- python3+ selenium3开发环境搭建
环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...
- Python3+PyQt5+PyCharm 桌面GUI开发环境搭建
Python3+PyQt5+PyCharm 桌面GUI开发环境搭建 一.安装python PyQt5所支持的python版本是不低于3.5版本 python3.5以上的版本安装:https://www ...
- Django Python MySQL Linux 开发环境搭建
Django Python MySQL Linux 开发环境搭建 1.安装Python 进行Python开发,首先必须安装python,对于linux 或者Mac 用户,python已经预装. 在命令 ...
随机推荐
- 使用PRTG和panabit结合定位网络阻塞的来源
一.背景 在网络管理工作中,有时会出现网络阻塞,需要定位阻塞来源以采取措施解决问题.二.以一个网络阻塞案例说明定位方法 案例:某企业日常使用多条网络线路,某一段时间发现某条线路传输速率下降,对 ...
- Beta冲刺 —— 5.29
这个作业属于哪个课程 软件工程 这个作业要求在哪里 Beta冲刺 这个作业的目标 Beta冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.展示了每个人当天的成果. ...
- DevOps - 从渐进式交付说起(含实践 Demo)
作者:CODING - 王炜 1. 开篇 如果让你主导一款千万.甚至亿级用户产品的功能迭代,你会怎么做?你需要面对的挑战可能来自于: 商业战略的变化带来新的产品诉求,而产品的任何改动哪怕仅是界面调整, ...
- Python 为什么没有 main 函数?为什么我不推荐写 main 函数?
毫无疑问 Python 中没有所谓的 main 入口函数,但是网上经常看到一些文章提"Python 的 main 函数"."建议写 main 函数"-- 有些人 ...
- Vue中导出Excel表格方法
本文记录一下在Vue中实现导出Excel表格的做法.参考度娘上各篇博客,最后实现功能 Excel表格,我的后端返回的是数据流,然后文件名是放进了content-disposition中,前端进行获取. ...
- python3 的setter方法及property修饰
#!/usr/bin/env pthon#coding:utf-8 class person(object): def __init__(self,name,sex,age,surface,heigh ...
- Java实现 LeetCode 449 序列化和反序列化二叉搜索树
449. 序列化和反序列化二叉搜索树 序列化是将数据结构或对象转换为一系列位的过程,以便它可以存储在文件或内存缓冲区中,或通过网络连接链路传输,以便稍后在同一个或另一个计算机环境中重建. 设计一个算法 ...
- 温故知新-Mysql的体系结构概览&sql优化步骤
文章目录 Mysql的体系结构概览 连接层 服务层 引擎层 存储层 存储引擎 存储引擎概述 存储引擎特性![存储引擎特性对比](https://img-blog.csdnimg.cn/20200510 ...
- KVM Web管理平台 WebVirtMgr
WebVirtMgr介绍 WebVirtMgr是一个KVM管理平台,让kvm管理变得更为可视化,对中小型kvm应用场景带来了更多方便.WebVirtMgr采用几乎纯Python开发,其前端是基于Pyt ...
- js排他性算法
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...