官网

  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. windows下grunt的快速入门

    1.认识grunt  grunt是什么:他是一套前端自动化工具,是一个基于nodejs的命令行工具.(Grunt和Grunt插件是通过npm  安装并管理的,所以首先要安装nodejs). grunt ...

  2. 【Socket通信】关于Socket通信原理解析及python实现

    Socket(套接字)通信{网络通信其实就是Socket间的通信},首先了解下概念:[来源于百度百科] "两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket.& ...

  3. Java实现蓝桥杯模拟存储转换

    问题描述 在计算机存储中,15.125GB是多少MB? 答案提交 这是一道结果填空的题,你只需要算出结果后提交即可.本题的结果为一个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分. pac ...

  4. C#Winform中resx文件无效 找不到路径

    问题由来 笔者因为更改了添加的图片的路径,再把路径改成图片所在的路径还是报resx文件无效,未能找到路径 问题原因 其实这个问题是因为对对象的引用修改了,但是resx文件中的应用还是没有修改.因为re ...

  5. java实现第六届蓝桥杯打印菱形

    打印菱形 给出菱形的边长,在控制台上打印出一个菱形来. 为了便于比对空格,我们把空格用句点代替. 当边长为8时,菱形为: .......* ......*.* .....*...* ....*.... ...

  6. Java实现第八届蓝桥杯包子凑数

    包子凑数 题目描述 小明几乎每天早晨都会在一家包子铺吃早餐.他发现这家包子铺有N种蒸笼,其中第i种蒸笼恰好能放Ai个包子.每种蒸笼都有非常多笼,可以认为是无限笼. 每当有顾客想买X个包子,卖包子的大叔 ...

  7. java实现第五届蓝桥杯奇怪的分式

    奇怪的分式 题目描述 上小学的时候,小明经常自己发明新算法.一次,老师出的题目是: 1/4 乘以 8/5 小明居然把分子拼接在一起,分母拼接在一起,答案是:18/45 (参见图1.png) 老师刚想批 ...

  8. CGLIB动态代理机制,各个方面都有写到

    CGLIB库介绍 代理提供了一个可扩展的机制来控制被代理对象的访问,其实说白了就是在对象访问的时候加了一层封装.JDK从1.3版本起就提供了一个动态代理,它使用起来非常简单,但是有个明显的缺点:需要目 ...

  9. 【Spring注解驱动开发】聊聊Spring注解驱动开发那些事儿!

    写在前面 今天,面了一个工作5年的小伙伴,面试结果不理想啊!也不是我说,工作5年了,问多线程的知识:就只知道继承Thread类和实现Runnable接口!问Java集合,竟然说HashMap是线程安全 ...

  10. 6.keras-基于CNN网络的Mnist数据集分类

    keras-基于CNN网络的Mnist数据集分类 1.数据的载入和预处理 import numpy as np from keras.datasets import mnist from keras. ...