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已经预装. 在命令 ...
随机推荐
- Java实现 LeetCode 748 最短完整词(字母拆分+暴力)
748. 最短完整词 如果单词列表(words)中的一个单词包含牌照(licensePlate)中所有的字母,那么我们称之为完整词.在所有完整词中,最短的单词我们称之为最短完整词. 单词在匹配牌照中的 ...
- Java实现 LeetCode 722 删除注释(暴力筛选)
722. 删除注释 给一个 C++ 程序,删除程序中的注释.这个程序source是一个数组,其中source[i]表示第i行源码. 这表示每行源码由\n分隔. 在 C++ 中有两种注释风格,行内注释和 ...
- Java实现 LeetCode 720 词典中最长的单词(字典树)
720. 词典中最长的单词 给出一个字符串数组words组成的一本英语词典.从中找出最长的一个单词,该单词是由words词典中其他单词逐步添加一个字母组成.若其中有多个可行的答案,则返回答案中字典序最 ...
- Java实现 LeetCode 414 第三大的数
414. 第三大的数 给定一个非空数组,返回此数组中第三大的数.如果不存在,则返回数组中最大的数.要求算法时间复杂度必须是O(n). 示例 1: 输入: [3, 2, 1] 输出: 1 解释: 第三大 ...
- SQK Server实现 LeetCode 175 组合两个表
175. 组合两个表 SQL架构 表1: Person +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | Person ...
- react 性能优化注意事项
工具: React 16 或更新版本 只需在url 后边加 ?react_perf 后 performance 一栏中会添加 User Timing devtool 分析 state.props ...
- 关于64位W7下怎么学习汇编语言的一些心得!
出处:http://tieba.baidu.com/p/2277546332 1.首先下载DOSBOX,它的作用就是让你在64位下使用32.16位的软件.如果不使用DOSBOX就会出现程序不兼容的对话 ...
- VSCode最佳设置
最近在学习Vue,用VSCode开发.经过摸索,VSCode最佳设置. { "eslint.enable": false, "workbench.colorTheme&q ...
- Git Commit 提交规范
写好 Commit message 好处多多: 1.统一团队Git commit 日志风格 2.方便日后 Reviewing Code 3.帮助我们写好 Changelog 4.能很好的提升项目整体质 ...
- is ==小数据池编码解码
== 比较 比较的是两边的值 is 比较 比较的是内存地址 判断两个东西指向的是不是同一个对象 取内存地址 id() 小数据池 ...