+-
django项目相关配置方法
首页 专栏 django 文章详情
0

django项目相关配置方法

Bill 发布于 4 月 15 日

orm查询对象序列化

在最高层面,你可以像这样序列化数据:
from django.core import serializers data = serializers.serialize("xml", SomeModel.objects.all())
serialize 函数的参数是数据序列化的目标格式 (查看 序列化格式)和用来序列化的 QuerySet。(实际上,第二个参数可以是任何生成 Django 模型实例的迭代器,但它几乎总是一个QuerySet)。
django.core.serializers.get_serializer (format) XMLSerializer = serializers.get_serializer("xml") xml_serializer = XMLSerializer() xml_serializer.serialize(queryset) data = xml_serializer.getvalue()

利用Django的serialize序列化成json对象

import json from django.core.serializers import serialize json_data = serialize('json', goods) # str json_data = json.loads(json_data) # 序列化成json对象

建立超级用户

python manage.py createsuperuser

创建项目

django-admin startproject 项目名

创建应用

python manage.py startapp 应用名

model函数逆向生成mysql

配置pymysql # project项目文件夹下的__init__.py import pymysql pymysql.install_as_MySQLdb() 配置数据库连接信息 # project项目文件夹下的settings.py DATABASES = { 'default': {'ENGINE': 'django.db.backends.mysql', # 数据库引擎,指明数据库类型 'HOST': '127.0.0.1', # 数据库安装在本机 'PORT': '3306', # 端口号 'NAME': 'test_orm', # 数据库名称 'USER': 'root', # 数据库用户名 'PASSWORD': 'root', # 数据库密码 } } 将应用添加到启动项里 INSTALLED_APPS = [ '应用名称' ] 在应用model层写入函数 # 例如 from django.db import models class author(models.Model): name = models.CharField(max_length=10, verbose_name='姓名') email = models.EmailField(verbose_name='邮箱') birthday = models.DateField(verbose_name='生日') header = models.ImageField(verbose_name='头像') 逆向生成mysql

在terminal运行

python manage.py makemigrationspython manage.py migrate

管理后台注入数据

注册需要admin、models模块,前两行代码进行了导入。

注册通过register()函数将参数传入数据模型即可。

# /book/admin.py from django.contrib import admin from . import models admin.site.register(models.book) admin.site.register(models.publishing) admin.site.register(models.author)

管理后台原理

启动程序后,Django运行admin.autodiscover()函数,这个函数到settigns.py文件中查询INSTALLED_APPS设置。然后根据INSTALLED_APPS中列举的应用程序,到各个应用程序中查找一个名为admin.py 的文件,并执行里面的代码 在应用程序的admin.py 文件中,调用admin.site.register()在管理后台中注册各个数据模型,只有注册的数据模型才能在管理后台中显示。 Django Admin管理后台应用程序也有admin.py文件,管理后台应用程序定义了两个数据模型Users和Groups,并在admin.py中注册,因此管理页面中能显示Users和Groups。 Django Admin管理后台实际上是一个Django应用程序,有自己的数据模型、模板文件、视图文件和URL配置文件等。

项目配置

配置中文
settings.py中找到 LANGUAGE_CODE设置为 zh-hans
配置时区
settings.py找到 TIME_ZONE设置为 Asia/Shanghai'
设置图片路径
from . import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), … ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) # settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

首先通过from django.conf.urls.static import static导入静态文件处理相关的模块。然后通过statics()函数指定一个对应关系,static有两个参数,一个是URL路径前缀,一个是路径前缀代表的地址。这两个参数值在settings.py文件中已经设置,即settings.py中的变量MEDIA_URL和MEDIA_ROOT,因此需要通过from .import settings导入settings.py的配置。

通过前面的介绍可以知道settings.MEDIA_URL值为/media/,settings.MEDIA_ROOT的值为/myproject/image/,这样就把前缀/media/与/myproject/image/路径对应起来。也就是说,如果HTML文件中有一个URL的前缀是/media/,就会被Django模板引擎解析为/myproject/image/,例如href='/media/test/test.jpg' 会被解析为href='/myproject/image/test/test.jpg'。

将static()函数返回值加在urlpatterns的列表项后,即可实现静态文件路径设置,形如+ static (settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

admin自定义配置
# admin.py from django.contrib import admin # Register your models here. from . import models class bookadmin(admin.ModelAdmin): date_hierarchy = 'pulishdate' empty_value_display = '-无值-' filter_horizontal = ('author',) fieldsets = (('图书信息', {'fields': (('title', 'pulishdate'), 'publishing', 'author')}), ('图书简介', {'classes': ('collapse',), 'fields': ('descript',)}),) def descript_str(self, obj): # 对字段进行切片,取前20个字符 return obj.descript[:20] # 设置自定义字段名字 descript_str.short_description = '简介' # 设置过滤导航字段 list_filter = ('title', 'publishing', 'author') # 设置查询的字段 search_fields = ('title', 'publishing__name', 'author__name') # 列表显示字段 list_display = ('title', 'descript_str', 'publishing',) # 显示查询到的记录数 show_full_result_count = True # 设定每页显示6条记录 list_per_page = 6 # 注册通过register()函数将参数传入数据模型即可 admin.site.register(models.book, bookadmin) admin.site.register(models.publishing) admin.site.register(models.author)
指定用户模型
# settings.py AUTH_USER_MODEL = 'blog.loguser'

富文本编辑器配置

# settings.py # 设置富文本编辑器的上传文件的相对路径 CKEDITOR_UPLOAD_PATH = 'upload/' # 设置图片处理的引擎为pillow,用于生成图片缩略图,在编辑器里浏览上传的图片 CKEDITOR_IMAGE_BACKEND = 'pillow' # 在编辑器里浏览上传的图片时,图片会以路径分组、以日期排序 CKEDITOR_BROWSE_SHOW_DIRS = True # 不允许非图片文件上传,默认为True CKEDITOR_ALLOW_NONIMAGE_FILES = False # 限制用户浏览图片的权限,只能浏览自己上传的图片 CKEDITOR_RESTRICT_BY_USER = True # 自定义编辑器功能 CKEDITOR_CONFIGS = { # 配置名是default时,django-ckeditor默认使用这个配置 'default': { # 使用简体中文 'language':'zh-cn', # 设置富文本编辑器的宽度与高度 'width':660px', 'height':'200px', # 设置工具栏为自定义,名字为Custom 'toolbar': 'Custom', # 添加富文本编辑器的工具栏上的按钮 'toolbar_Custom': [ ['Bold', 'Italic', 'Underline'], ['Numbered List', 'Bulleted List'], ['Image', 'Link', 'Unlink'], ['Maximize'] ] }, test: {...} }
使用指定配置时需要在富文本组件加载方法内通过 config_nae指定
body=RichTextUploadingField(config_name='test',verbose_name='文本内容')
django python3.x
阅读 60 更新于 4 月 15 日
举报
收藏
分享
本作品系原创, 采用《署名-非商业性使用-禁止演绎 4.0 国际》许可协议
avatar
Bill

职业:网管

151 声望
8 粉丝
关注作者
0 条评论
得票数 最新
提交评论
avatar
Bill

职业:网管

151 声望
8 粉丝
关注作者
宣传栏
目录

orm查询对象序列化

在最高层面,你可以像这样序列化数据:
from django.core import serializers data = serializers.serialize("xml", SomeModel.objects.all())
serialize 函数的参数是数据序列化的目标格式 (查看 序列化格式)和用来序列化的 QuerySet。(实际上,第二个参数可以是任何生成 Django 模型实例的迭代器,但它几乎总是一个QuerySet)。
django.core.serializers.get_serializer (format) XMLSerializer = serializers.get_serializer("xml") xml_serializer = XMLSerializer() xml_serializer.serialize(queryset) data = xml_serializer.getvalue()

利用Django的serialize序列化成json对象

import json from django.core.serializers import serialize json_data = serialize('json', goods) # str json_data = json.loads(json_data) # 序列化成json对象

建立超级用户

python manage.py createsuperuser

创建项目

django-admin startproject 项目名

创建应用

python manage.py startapp 应用名

model函数逆向生成mysql

配置pymysql # project项目文件夹下的__init__.py import pymysql pymysql.install_as_MySQLdb() 配置数据库连接信息 # project项目文件夹下的settings.py DATABASES = { 'default': {'ENGINE': 'django.db.backends.mysql', # 数据库引擎,指明数据库类型 'HOST': '127.0.0.1', # 数据库安装在本机 'PORT': '3306', # 端口号 'NAME': 'test_orm', # 数据库名称 'USER': 'root', # 数据库用户名 'PASSWORD': 'root', # 数据库密码 } } 将应用添加到启动项里 INSTALLED_APPS = [ '应用名称' ] 在应用model层写入函数 # 例如 from django.db import models class author(models.Model): name = models.CharField(max_length=10, verbose_name='姓名') email = models.EmailField(verbose_name='邮箱') birthday = models.DateField(verbose_name='生日') header = models.ImageField(verbose_name='头像') 逆向生成mysql

在terminal运行

python manage.py makemigrationspython manage.py migrate

管理后台注入数据

注册需要admin、models模块,前两行代码进行了导入。

注册通过register()函数将参数传入数据模型即可。

# /book/admin.py from django.contrib import admin from . import models admin.site.register(models.book) admin.site.register(models.publishing) admin.site.register(models.author)

管理后台原理

启动程序后,Django运行admin.autodiscover()函数,这个函数到settigns.py文件中查询INSTALLED_APPS设置。然后根据INSTALLED_APPS中列举的应用程序,到各个应用程序中查找一个名为admin.py 的文件,并执行里面的代码 在应用程序的admin.py 文件中,调用admin.site.register()在管理后台中注册各个数据模型,只有注册的数据模型才能在管理后台中显示。 Django Admin管理后台应用程序也有admin.py文件,管理后台应用程序定义了两个数据模型Users和Groups,并在admin.py中注册,因此管理页面中能显示Users和Groups。 Django Admin管理后台实际上是一个Django应用程序,有自己的数据模型、模板文件、视图文件和URL配置文件等。

项目配置

配置中文
settings.py中找到 LANGUAGE_CODE设置为 zh-hans
配置时区
settings.py找到 TIME_ZONE设置为 Asia/Shanghai'
设置图片路径
from . import settings from django.conf.urls.static import static urlpatterns = [ path('admin/', admin.site.urls), … ] + static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT) # settings.py MEDIA_URL = '/media/' MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

首先通过from django.conf.urls.static import static导入静态文件处理相关的模块。然后通过statics()函数指定一个对应关系,static有两个参数,一个是URL路径前缀,一个是路径前缀代表的地址。这两个参数值在settings.py文件中已经设置,即settings.py中的变量MEDIA_URL和MEDIA_ROOT,因此需要通过from .import settings导入settings.py的配置。

通过前面的介绍可以知道settings.MEDIA_URL值为/media/,settings.MEDIA_ROOT的值为/myproject/image/,这样就把前缀/media/与/myproject/image/路径对应起来。也就是说,如果HTML文件中有一个URL的前缀是/media/,就会被Django模板引擎解析为/myproject/image/,例如href='/media/test/test.jpg' 会被解析为href='/myproject/image/test/test.jpg'。

将static()函数返回值加在urlpatterns的列表项后,即可实现静态文件路径设置,形如+ static (settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

admin自定义配置
# admin.py from django.contrib import admin # Register your models here. from . import models class bookadmin(admin.ModelAdmin): date_hierarchy = 'pulishdate' empty_value_display = '-无值-' filter_horizontal = ('author',) fieldsets = (('图书信息', {'fields': (('title', 'pulishdate'), 'publishing', 'author')}), ('图书简介', {'classes': ('collapse',), 'fields': ('descript',)}),) def descript_str(self, obj): # 对字段进行切片,取前20个字符 return obj.descript[:20] # 设置自定义字段名字 descript_str.short_description = '简介' # 设置过滤导航字段 list_filter = ('title', 'publishing', 'author') # 设置查询的字段 search_fields = ('title', 'publishing__name', 'author__name') # 列表显示字段 list_display = ('title', 'descript_str', 'publishing',) # 显示查询到的记录数 show_full_result_count = True # 设定每页显示6条记录 list_per_page = 6 # 注册通过register()函数将参数传入数据模型即可 admin.site.register(models.book, bookadmin) admin.site.register(models.publishing) admin.site.register(models.author)
指定用户模型
# settings.py AUTH_USER_MODEL = 'blog.loguser'

富文本编辑器配置

# settings.py # 设置富文本编辑器的上传文件的相对路径 CKEDITOR_UPLOAD_PATH = 'upload/' # 设置图片处理的引擎为pillow,用于生成图片缩略图,在编辑器里浏览上传的图片 CKEDITOR_IMAGE_BACKEND = 'pillow' # 在编辑器里浏览上传的图片时,图片会以路径分组、以日期排序 CKEDITOR_BROWSE_SHOW_DIRS = True # 不允许非图片文件上传,默认为True CKEDITOR_ALLOW_NONIMAGE_FILES = False # 限制用户浏览图片的权限,只能浏览自己上传的图片 CKEDITOR_RESTRICT_BY_USER = True # 自定义编辑器功能 CKEDITOR_CONFIGS = { # 配置名是default时,django-ckeditor默认使用这个配置 'default': { # 使用简体中文 'language':'zh-cn', # 设置富文本编辑器的宽度与高度 'width':660px', 'height':'200px', # 设置工具栏为自定义,名字为Custom 'toolbar': 'Custom', # 添加富文本编辑器的工具栏上的按钮 'toolbar_Custom': [ ['Bold', 'Italic', 'Underline'], ['Numbered List', 'Bulleted List'], ['Image', 'Link', 'Unlink'], ['Maximize'] ] }, test: {...} }
使用指定配置时需要在富文本组件加载方法内通过 config_nae指定
body=RichTextUploadingField(config_name='test',verbose_name='文本内容')