官网

  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

    

最新文章

  1. WinForm开发框架--动态读取DLL模式
  2. thinkpad E450 fn快捷键设置
  3. 【官方方法】xcode7免证书真机调试
  4. scala高级内容(二) - Implicit
  5. super的用法
  6. .NET序员的成长之路
  7. Linux进程的状态转换图
  8. unity 组件开发
  9. Calendar.getInstance()获取当天指定点上的时间[转载]
  10. javaWeb学习总结(3)- Servlet总结(servlet的主要接口、类)
  11. 【Android Developers Training】 61. 序言:使用OpenGL ES显示图像
  12. 【原创】09. easyui-tabs 配合 iframe 使用,请求两次等问题
  13. C#中的out参数/ref参数/params可变参数
  14. oracle分析函数技术详解(配上开窗函数over())
  15. springboot使用redisTemplate遇到的问题
  16. BeautifulSoup获取图片
  17. 【C#】解析C#中LING的使用
  18. [转]opengl入门例题(读取bmp图片,并显示)
  19. Gym - 100345H Settling the Universe Up(bitset)
  20. Nexus 按项目类型分配不同的工厂来发布不同 项目

热门文章

  1. Rocket - tilelink - Delayer
  2. Rocket - tilelink - CacheCork
  3. Rocket - util - Timer
  4. Rocket - util - AsyncQueue
  5. jchdl - GSL实例 - Mux4(使用Mux)
  6. Qcom rampdump解析工具使用
  7. Java实现 蓝桥杯VIP 算法训练 阶乘末尾
  8. Java实现LeetCode_0035_SearchInsertPosition
  9. Java实现 蓝桥杯 历届试题 横向打印二叉树
  10. Docker安装及阿里云镜像加速器配置