官网

  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.开发环境搭建的更多相关文章

  1. PyQt5+Python3.5.2-32bit开发环境搭建

      1.基本环境. Window 8.1 64bit Python3.5.2-32bit.exe PyQt5 2.安装python. 去官网下载32位版本的python3.5.2(就是x86那个) 备 ...

  2. Django初探--开发环境搭建(笔记)

    1. Django框架的安装 (1) 下载Django源码 Django-1.7.11.tar.gz,并解压,网址:https://www.djangoproject.com/download/ (2 ...

  3. Django之Django简介,开发环境搭建,项目应用创建

    软件及Django框架简介 软件框架 一个软件框架是由其中各个软件模块组成的: 每一个模块都有特定的功能: 模块与模块之间通过相互配合来完成软件的开发. 软件框架是针对某一类软件设计问题而产生的. M ...

  4. Ubuntu下Django初体验(一)——开发环境搭建

    一.开发 环境搭建 1. linux下一般有自带的python,如果对版本不满意,可以再自行安装. 2. 安装ipython(推荐) sudo apt-get install ipython sudo ...

  5. nginx+uwsgi+django开发环境搭建

    Nginx+uWSGI+Djangoi开发环境搭建 Django简介,环境搭建 uWSGI简介,安装与配置 Nginx安装与配置 Nginx+uWSGI+Django原理解析 1.django简介,环 ...

  6. Python3从零开始爬取今日头条的新闻【一、开发环境搭建】

    Python3从零开始爬取今日头条的新闻[一.开发环境搭建] Python3从零开始爬取今日头条的新闻[二.首页热点新闻抓取] Python3从零开始爬取今日头条的新闻[三.滚动到底自动加载] Pyt ...

  7. python3+ selenium3开发环境搭建-手把手教你安装python(详细)

    环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...

  8. python3+ selenium3开发环境搭建

    环境搭建 基于python3和selenium3做自动化测试,俗话说:工欲善其事必先利其器:没有金刚钻就不揽那瓷器活,磨刀不误砍柴工,因此你必须会搭建基本的开发环境,掌握python基本的语法和一个I ...

  9. Python3+PyQt5+PyCharm 桌面GUI开发环境搭建

    Python3+PyQt5+PyCharm 桌面GUI开发环境搭建 一.安装python PyQt5所支持的python版本是不低于3.5版本 python3.5以上的版本安装:https://www ...

  10. Django Python MySQL Linux 开发环境搭建

    Django Python MySQL Linux 开发环境搭建 1.安装Python 进行Python开发,首先必须安装python,对于linux 或者Mac 用户,python已经预装. 在命令 ...

随机推荐

  1. 如何基于 echarts 在柱状图或条形图上实现转换率?(有想法吗?)

    目录 需求 探索一 探索二 探索三 转换实践思路1 转换实践思路2 其他思路 探索四(揭晓答案) 答案篇说明 backgroundColor 用法 双柱合一 始终在轴的中间 百分在变,但是距离轴的距离 ...

  2. PYTHON 黑帽子第二章总结

    基于python3编写 import sys, socket, getopt, threading, argparse, subprocess # globals options listen = F ...

  3. Redis 入门到分布式 (一)Redis初识

    个人博客网:https://wushaopei.github.io/    (你想要这里多有) 一.Redis特性目录 Redis的特性: 速度快 持久化 多种数据结构 支持多种编辑语言 功能丰富 简 ...

  4. Java实现 蓝桥杯VIP 算法训练 二元函数

    问题描述 令二元函数f(x,y)=ax+by,a和b为整数,求一个表达式S的值. 只有满足以下要求的表达式才是合法的: 1.任意整数x是一个合法的表达式: 2.如果A和B都是合法的表达式,则f(A,B ...

  5. Java实现 LeetCode 148 排序链表

    148. 排序链表 在 O(n log n) 时间复杂度和常数级空间复杂度下,对链表进行排序. 示例 1: 输入: 4->2->1->3 输出: 1->2->3-> ...

  6. Java实现 LeetCode 47 全排列 II(二)

    47. 全排列 II 给定一个可包含重复数字的序列,返回所有不重复的全排列. 示例: 输入: [1,1,2] 输出: [ [1,1,2], [1,2,1], [2,1,1] ] class Solut ...

  7. Java实现 蓝桥杯VIP 算法提高 change

    算法提高 change 时间限制:1.0s 内存限制:256.0MB 问题描述 数组A中共有n个元素,初始全为0.你可以对数组进行两种操作:1.将数组中的一个元素加1:2.将数组中所有元素乘2.求将数 ...

  8. java中ReentrantLock类的详细介绍(详解)

    博主如果看到请联系小白,小白记不清地址了 简介 ReentrantLock是一个可重入且独占式的锁,它具有与使用synchronized监视器锁相同的基本行为和语义,但与synchronized关键字 ...

  9. Java实现图形化计算器

    package java计算器; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionL ...

  10. 一文带你了解ANR(测试人员)

    一.首先,了解一下什么是ANR ANR,是"Application Not Responding"的缩写,即"应用程序无响应".系统会向用户显示一个对话框,用户 ...