# 1. 快速开始的helloworld
#
# 在下载好的django路径下执行django的安装
# https://pypi.python.org/pypi/Django/1.6.4
python3 setup.py install
#
# 新建django项目
django-admin.py startproject mysite
#
# 运行django项目
python3 manage.py runserver [port]
#
# 创建一个app
python3 manage.py startapp appname# 2. model定义
# 模型定义特殊字段定义(后面一些Field被略去)
# AutoFiled  SlugField SmallIntegerField #Date,DateTime,Decimal,Char,File,Float,FilePath,Text#,Time,Binary,Boolean,BigInterger,NullBoolean,Image,#Interger,OneToOne
#PositiveSmallIntegerField, #PositiveIntergerField,Url,Email
#
# 创建一个model实体
from django.db import models
class Publisher(models.Model):name = models.CharField(max_length=30) // 普通字段website = models.URLField()   // url类型字段email = models.EmailField()   // email类型字段publication_date = models.DateField()   // 时间类型字段publisher = models.ForeignKey(Publisher)   // 引用信息(外键)
#
# 创建一个关联实体(此段来源自博客园@2BiTT)
class Person(models.Model):name = models.CharField(max_length=128)def __unicode__(self):return self.nameclass Group(models.Model):name = models.CharField(max_length=128)members = models.ManyToManyField(Person, through='Membership')def __unicode__(self):return self.nameclass Membership(models.Model):person = models.ForeignKey(Person)group = models.ForeignKey(Group)date_joined = models.DateField()invite_reason = models.CharField(max_length=64)
#
# 实体常用方法(此段来源自博客园@2BiTT)
class Person(models.Model):first_name = models.CharField(max_length=50)last_name = models.CharField(max_length=50)def __unicode__(self):return u'%s %s' % (self.first_name, self.last_name)def get_absolute_url(self):return "/people/%i/" % self.id# 3. 将实体生成到数据库
# 模型检测 (需要在settings.py中注册此app)
python3 manage.py validate
#
# 模型生成sql语句查看
python3 manage.py sqlall modelname (app的名字)
#
# 模型生成到db 要生成用户之前必须做这一步
python3 manage.py syncdb# 4. django的后台管理操作
# 建立管理超级员
python manage.py createsuperuser
#
# 将model加入到admin管理列表中 在admin中
from django.contrib import admin
from books.models import Publisher, Author, Book
admin.site.register(Author,AuthorAdmin)
#
# 附加管理视图,将管理视图更明细
from django.contrib import admin
class BookAdmin(admin.ModelAdmin):list_display = ('title', 'publisher', 'publication_date')   #显示列list_filter = ('publication_date',)    # 列过滤条件date_hierarchy = 'publication_date'   # 日期选择条件ordering = ('-publication_date',)   # 列表日期降序排列fields = ('title', 'authors', 'publisher')  # 编辑时显示需要添加的列   其他列   null=Trueraw_id_fields = ('publisher',)  # 编辑时 显示为id序号
## 5. 控制视图输出内容
# 定义模板路径
TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'template').replace('\\','/'),# /Users/King/Documents/Ops/Python/HelloDjango/HelloDjango# /Users/King/Documents/Ops/Python/HelloDjango/HelloDjango/template
)
#
# 进入项目命令行模型
python manage.py shellfrom django.contrib.auth.models import Publisherp = Publisher.objects.create(name='Apress',website='www.apress.com')Publisher.name = 'tuling'所有的model都拥有一个objects管理器使用filter方法可以过滤obj    Publisher.objects.filter(name='usa')模糊查询        Publisher.objects.filter(name__contains='usa')
#   使用get方法可完成一个对象的获取,如果返回不止一个对象就会报错 Publisher.DoesNotExist使用order_by 排序    可 - 倒排p = Publisher.objects.filter(id=52).update(name='Apress Publishing')p.delete()   删除对象p.save()
#
# 导入静态文件
在setting.py中# 静态资源区域# 这是一个根目录区域   对应实际文件目录STATIC_ROOT = 'static/'# 这是url配置目录   给urls用的STATIC_URL = 'static/'
在模板页面中<link rel="stylesheet" href="{{ STATIC_URL }}css/bootstrap.css"><script type="text/javascript" src="{{ STATIC_URL }}js/bootstrap.js"></script>
在urls.py的配置中from django.conf.urls.static import static在最后加入admin.autodiscover()urlpatterns = patterns('',# Examples:# url(r'^$', 'HelloDjango.views.home', name='home'),# url(r'^blog/', include('blog.urls')),url(r'^admin/', include(admin.site.urls)),(r'^$', latest_books),) + (static(settings.STATIC_URL, document_root=settings.STATIC_ROOT))
在views.py对应的输出视图中return render_to_response('index.html', {'book_list': book_list,'STATIC_URL': STATIC_URL,})# 6. 其他解决方案
配置文件中
STATICFILES_DIRS = ('/Users/King/Documents/Ops/Python/HelloDjango/static',
)
#
#
# 一个app基本的设置
#
#
import os
BASE_DIR = os.path.dirname(os.path.dirname(__file__))
ROOT_URLCONF = 'HelloDjango.urls'
SECRET_KEY = '&%s+d(0$motnksr+0o+oo8z9k=2h*7gd%gnnylrnc^w5#nut)h'
DEBUG = True
TEMPLATE_DEBUG = True
ALLOWED_HOSTS = []
MIDDLEWARE_CLASSES = ('django.contrib.sessions.middleware.SessionMiddleware','django.middleware.common.CommonMiddleware','django.middleware.csrf.CsrfViewMiddleware','django.contrib.auth.middleware.AuthenticationMiddleware','django.contrib.messages.middleware.MessageMiddleware','django.middleware.clickjacking.XFrameOptionsMiddleware',
)
WSGI_APPLICATION = 'HelloDjango.wsgi.application'
DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3','NAME': os.path.join(BASE_DIR, 'db.sqlite3'),}
}
LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
# # Absolute filesystem path to the directory that will hold user-uploaded files.
# # Example: "/home/media/media.lawrence.com/media/"
# MEDIA_ROOT = ''
#
# # URL that handles the media served from MEDIA_ROOT. Make sure to use a
# # trailing slash.
# # Examples: "http://media.lawrence.com/media/", "http://example.com/media/"
# MEDIA_URL = ''
# BASE_DIR = os.path.dirname(os.path.dirname(__file__))
# TEMPLATE_DIRS = ('templates',)
# 静态资源区域
# 这是一个根目录区域   对应实际文件目录
STATIC_ROOT = 'static/'
# 这是url配置目录   给urls用的
STATIC_URL = 'static/'
# STATICFILES_DIRS = (
# # Put strings here, like "/home/html/static" or "C:/www/django/static".
# # Always use forward slashes, even on Windows.
# # Don't forget to use absolute paths, not relative paths.
# )
# STATICFILES_FINDERS = (
#     'django.contrib.staticfiles.finders.FileSystemFinder',
#     'django.contrib.staticfiles.finders.AppDirectoriesFinder',
#     #    'django.contrib.staticfiles.finders.DefaultStorageFinder',
# )
# 定义模板路径
# List of callables that know how to import templates from various sources.
# TEMPLATE_LOADERS = (
#     'django.template.loaders.filesystem.Loader',
#     'django.template.loaders.app_directories.Loader',
#     #     'django.template.loaders.eggs.Loader',
# )
TEMPLATE_DIRS = (os.path.join(BASE_DIR, 'templates').replace('\\','/'),
)
INSTALLED_APPS = ('django.contrib.admin','django.contrib.auth','django.contrib.contenttypes','django.contrib.sessions','django.contrib.messages','django.contrib.staticfiles','app',
)
# LOGGING = {
#     'version': 1,
#     'disable_existing_loggers': False,
#     'filters': {
#         'require_debug_false': {
#             '()': 'django.utils.log.RequireDebugFalse'
#         }
#     },
#     'handlers': {
#         'mail_admins': {
#             'level': 'ERROR',
#             'filters': ['require_debug_false'],
#             'class': 'django.utils.log.AdminEmailHandler'
#         }
#     },
#     'loggers': {
#         'django.request': {
#             'handlers': ['mail_admins'],
#             'level': 'ERROR',
#             'propagate': True,
#             },
#         }
# }

Django框架中的基本交互

# 服务器端展示数据
from django.shortcuts import render_to_response
def search(request):return render_to_response('search.html', {'books':books,})
#
# search.html的数据渲染 , 利用模板
{% if books %}<ul>发现 {{ books | length }} 本书{% for book in books %}<li>{{ book.title }}</li>{% endfor %}</ul>
{% else %}<p>没有查询到任何图书信息</p>
{% endif %}
# 客户端提交数据 search_form.html
<html><head>
<title>Search</title></head>
<body>
{% if error %}
<p style="color:red;">请输入查询条件</p>
{% endif %}
<form action="/search_form/" method="get">
<input type="text" name="q">
<input type="submit" value="Search">
</form>
</body>
</html>
#
# 收集客户端信息
# from django.http import HttpResponse
# request.path()   get_host()   get_full_path()   get_isecure()
# request.META[]   包含http头信息
def search_form(request):if 'q' in request.GET and request.GET['q']:q = request.GET['q']books = Book.objects.filter(title__icontains=q)return render_to_response('search_result.html', {'books':books,'query':q})else:return render_to_response('search.html', {'error': True})

最后附博文中基本实现代码一份

下一篇计划Django的高级应用

转载于:https://blog.51cto.com/apprentice/1405535

Python-Django中的那些命令相关推荐

  1. 如何在Python Django中处理用户身份验证

    by Mohammed Subhan Khan 由Mohammed Subhan Khan 如何在Python Django中处理用户身份验证 (How to handle user authenti ...

  2. Python 解释器中使用help()命令如何退出

    在python 解释器中使用help() 命令时,如何终止查询内容:使用 q 键或者使用 ctrl + d 转载于:https://my.oschina.net/u/2272631/blog/8156 ...

  3. 如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样)

    如何在Python脚本中调用外部命令(就像在linux shell或Windows命令提示符下输入一样) python标准库中的subprocess可以解决这个问题. from subprocess ...

  4. 如何在Python程序中运行Unix命令

    Unix是由Ken Thompson和Dennis Ritchie在1969年左右在AT&T贝尔实验室开发的操作系统. 我们可以使用许多有趣的Unix命令来执行不同的任务. 问题是,我们可以直 ...

  5. python代码中使用cmd命令出现cmd弹窗问题

    在pycharm中写python代码使用到cmd命令的时候,习惯使用os 代码如下: import os command = 'XXXXX' os.systme(command) 在调试的时候不弹出c ...

  6. python未指定的错误_python - Python脚本中的Sips命令不起作用-“错误4:未指定文件”和“不是有效文件-正在跳过” - 堆栈内存溢出...

    尝试通过Python脚本调整某些图像的大小(仅宽度). 这是一个Python脚本: # -*- coding: utf-8 -*- import subprocess import os # New ...

  7. Django中的常用命令

    django 基本命令操作: django-admin startproject jay:建立一个jay的项目 django-admin startapp haha 建立一个haha的APP pyth ...

  8. python 执行shell命令行效率提升_在python脚本中执行shell命令的方法

    使用Python处理一个shell命令或一个执行一个shell脚本,一般情况下,有以下三种方法,以下我们来看: 第一种方法是使用os.system的方法 os.system(" cmd&qu ...

  9. 实用的 Python —— os.system() 在 python 语句中执行 dos 命令

    import os (1)os.getcwd():首先查看当前工作目录 (2)os.chdir("):切换文件夹 os.syetem(") 本质上这里不是讲的不是 python,而 ...

  10. Python Django中,页面改变但链接地址没有跳转,解决方法

    预期是发送密码重置邮件后自动跳转到首页, 这个效果实现了,但是地址链接没有变,经过仔细定位, 解决方案如下: return render(request, 'login.html',{'msg': ' ...

最新文章

  1. JVM class加载机制的总结 收藏
  2. google-perftools优化nginx在高并发时的性能
  3. Sentinel 源码分析(一)
  4. 北方大学 ACM 多校训练赛 第十五场 买花
  5. Hadoop 之 MapReduce 的工作原理及其倒排索引的建立
  6. 方法重载与重写,返回类型
  7. 算法(一):二分查找法
  8. python 列表比较不同物质的吸热能力_文章
  9. mysql多表查询去重复数据_SQL重复记录查询 查询多个字段、多表查询、删除重复记录的方法...
  10. 操作系统系列(三)——编译和链接
  11. 用HTML+CSS做一个简单的新闻门户 1页网页
  12. 在HBuilder里为什么输入汉字是繁体字,而我的输入法设置的是简体
  13. 如何将接近开关作为限位开关连接?
  14. CF446D. DZY Loves Games
  15. E-PUCK机器人-软件
  16. CC2640R2F BLE5.0 CC2640R2F软件架构
  17. 轮播移动端 html,移动端h5如何使用轮播插件swipe
  18. 【路径规划】基于matlab蚁群算法机器人栅格地图最短路径规划【含Matlab源码 119期】
  19. Python声音处理入门
  20. 项目管理基础之逻辑思维学习

热门文章

  1. python 摄像头采集_Python+OpenCV采集本地摄像头的视频
  2. 32 开漏输出 高电平_MCU输入输出端口设置
  3. 凸优化第五章对偶 5.9广义不等式
  4. 2016-06-07【普元EOS Studio】
  5. Raki的读paper小记:Style Transformer
  6. 2020牛客多校训练1 I 1or2(拆点拆边带花树一般图最大匹配)
  7. javascript 数组所有方法
  8. P5018 对称二叉树
  9. Java容器---List
  10. 重写iframe内联框架中的内容