Python-Django中的那些命令

# 在下载好的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
#
# 模型定义特殊字段定义(后面一些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)   // 引用信息(外键)
#
# 模型检测 (需要在settings.py中注册此app)
python3 manage.py validate
#
# 模型生成sql语句查看
python3 manage.py sqlall modelname (app的名字)
#
# 模型生成到db 要生成用户之前必须做这一步
python3 manage.py syncdb
#
# 建立管理超级员
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=True
    raw_id_fields = (‘publisher‘,)  # 编辑时 显示为id序号
#
# 定义模板路径
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 shell
    from django.contrib.auth.models import Publisher
    p = 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,
    })
#
# 其他解决方案
配置文件中
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的高级应用

Python-Django中的那些命令

时间: 2024-11-08 20:16:55

Python-Django中的那些命令的相关文章

详解django中的collectstatic命令以及STATIC_URL、STATIC_ROOT配置

转:https://blog.csdn.net/weixin_36296538/article/details/83153070 前言我最近在琢磨django框架的使用,在上传个人网站服务器上时,再次遇到了找不到静态文件,css.img等样式全无的问题.于是沉下心来,好好研究了django的静态文件到底应该怎么去部署(deploy),一点心得体会现分享于下.1. python manage.py collectstatic做了什么Collects the static files into ST

python django中的orm外键级联删除

今天添加了一个路由表,路由表做外键,然后添加了几个组,路由表为组的外键,当我使用删除功能对路由表进行删除时,竞然将我的组也相当的删除了:尽管这是测试,但放到生产环境中还是会发生意外的:这个问题要解决: 在网上查了一下资料,问题主要是django orm的field字段有关: routemgr = models.ForeignKey('Routemgr',default=1,blank=True,null=True,on_delete=models.SET_NULL) 主要意思就是把Routemg

appium自动化测试框架——在python脚本中执行dos命令

一般我们运行dos命令,会有两种需求,一种是需要收集执行结果,如ip.device等:一种是不需要收集结果,如杀死或开启某个服务. 对应的在python中就要封装两种方法,来分别实现这两种需求. 1.引入包 import os 2.只执行不收集结果 os.system(command) 3.执行并手机结果 os.popen(command).readlines() 4.代码实现 1 #coding=utf-8 2 import os 3 4 class DosCmd: 5 ''' 6 用来封装w

python django中如何配置mysql参数

在成功安装python-mysql后,开始配置django的mysql连接配置 vi settings.py 修改 DATABASES = {    'default': {        'ENGINE': 'django.db.backends.sqlite3',        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),    }} 为 DATABASES = {    'default':{        'ENGINE':'django.d

Django中的syncdb命令

从官方文档的意思来看,现在他已经成为migrate命令的同义词了,和migrate命令有相同的作用. Deprecated since version 1.7: This command has been deprecated in favor of the migrate command, which performs both the old behavior as well as executing migrations. It is now just an alias to that c

python 之调用Linux shell命令及相关高级应用

最近根据老大要求,将数据进行同步备份,结合第三方提供的工具.第三方服务其实是有python demo的,本想研究下实际的python sdk搞个demo开发的,但是发现有些组建装起来确实头大,而且本公司线上的python版本也确实够低只能另想办法. 最终确定方案如下:利用第三方提供的相关管理工具(当然是Linux下的),通过python调用系统工具(本人对shell在这方面不是特别感冒,当然文本处理除外),然后将脚本输出重定向到日志文件中,方便检查文件上传成功或失败的具体情况处理. 那么就会设计

在Eclipse中搭建Python Django

Python Django 在Elipse中的搭建过程 首先下载安装Python的windows版本(linux),下载地址:http://www.python.org python在windows环境下的安装很简单,双击python-xx.msi(偶数版本为稳定版本),按照向导将python安装到本地. 测试是否安装成功:win开始 -> 所有程序 将看到图一 图一 打开IDLE,输入 echo 'go' 回车,输出 go 配置环境变量:将python安装目录配置到环境变量path里,打开do

Django中的单元测试以及Python单元测试

Python单元测试 是用来对一个模块.一个函数或者一个类进行正确性检验的测试工作. 在Python中unittest是它内置的单元测试框架,单元测试与功能测试都是日常开发中必不可少的部分. 比如对函数abs(),我们可以编写出一下几个测试用例: 输入正数,比如1,1.2,0.99,我们期待返回值与输入相同 输入负数,比如-1,-1.2,-0.99,我们期待返回值与输入值相反 输入0,我们期待返回0 输入非数值类型,比如None,[],{},我们期待抛出TypeError 把上面的测试用例放到一

django 中的延迟加载技术,python中的lazy技术

---恢复内容开始--- 说起lazy_object,首先想到的是django orm中的query_set.fn.Stream这两个类. query_set只在需要数据库中的数据的时候才 产生db hits.Stream对象只有在用到index时才会去一次次next. 例子: f = Stream() fib = f << [0, 1] << iters.map(add, f, iters.drop(1, f)) 1行生成了斐波那契数列. 说明: f是个lazy的对象,f首先放入

解决win7下安装的Python无法在命令窗口中使用pip命令的问题

win7的环境下安装Python3.5会出错,所以只能安装3.4及以下,在安装了Python之后想使用pip命令安装库文件是,发现pip不是内部或者外部的命令,在网上搜索了好久,也没有发觉好的解决办法,于是自己找到pip.exe(在安装目录下面的scripts中),打开管理员权限下的cmd,然后输入pip的路径,在使用install **就可以了