按自己的工程目录是EDjango是一个冲Python的高档Web开发框架。

tests.py

CREATE DATABASE blog;

</head>

    vi
/etc/sysconfig/selinux  把里面的同一行改吧:  SELINUX=disabled  (不履行就同样步则会并发2003报错),  重开生效

一如既往凡页面的情是凭view
function(视图函数)来兑现;

 

第二凡URL定义在urls.py文件之
URLconf配置信息里。

 

Win+R进入cmd命令界面,并cd到指定工程目录下,比如我之工程目录是E:\wamp\Apache24\www\

  • 编辑zzb/views

    # Create your views here.
    from django.http import HttpResponse
    def index(request):

        return HttpResponse('hello,world')
    

欢迎光临自强学堂

  • 取出数据

那你应有了解下Python
Django两单地方:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.shortcuts import render
from django.http import HttpResponse
from . import models

def index(request):
    articles = models.Article.objects.all()
    return render(request, 'zzb/index.html', {'articles':articles})

def article_page(request, article_id):
    article = models.Article.objects.get(pk=article_id)
    return render(request,'zzb/article_page.html',{'article':article})

def edit_page(request,article_id):
    if str(article_id) == '0':
        return render(request,'zzb/edit_page.html')
    article = models.Article.objects.get(pk=article_id)
    return render(request,'zzb/edit_page.html',{'article': article})

def edit_action(request):
    title = request.POST.get('title','TITLE')
    content = request.POST.get('content','CONTENT')
    article_id = request.POST.get('article_id','0')  

    if str(article_id) == '0':
#如果article_id为0
        models.Article.objects.create(title=title,content=content)
        articles = models.Article.objects.all()
        return render(request,'zzb/index.html',{'articles':articles})

#如果不为0
    article = models.Article.objects.get(pk=article_id)
    article.title = title
    article.content = content
    article.save()
    return render(request,'zzb/article_page.html',{'article':article})

输入cd www
进入www目录,此处可以输入python manage.py
runserver运行服务器,启动成功后,在ie浏览器的网址上输入http://127.0.0.1:8000/拓展测试,同时以键盘上以ctrl+break退出服务器

└── views.py 执行响应的逻辑代码所在的模块,决定了领web的呼吁后怎样响应(项目被大部于此地修)

输入python manage.py
runserver运行服务器,启动成功后,在ie浏览器的网址上输入http://127.0.0.1:8000/,在网页上看见欢迎光临自强学堂

    编辑应用下models.py,在Article类下补充加一个方,根据Python版本(3/2.7)选择_str_(self)或_unicode_(self)

<body>

 

*    <title>欢迎光临</title>***

 

新建一个静态网页测试:

2017-07-29/22:26:38

models.py

  • 浏览器输入地点: http://192.168.230.129/blog/index/ 
      

其中:
manage.py:一个命令行工具,通过她可以调用Django
shell和数据库等。键入python manage.py -h,查看她的连锁力量。
__init__.py:让 Python 把该目录当成一个支出包
(即同组模块)所欲的公文。这是一个空文件,一般你无需要修改它。
settings.py:项目的默认设置,包括数据库信息,调试标志以及任何组成部分干活之变量。
urls.py:django项目之URL设置。 可看出其为卿的django网站的目,
负责把URL模式映射到应用程序。
wsgi.py: 服务器网关接口(Python Web Server Gateway
Interface),web服务器暨web服务程序还是框架中的一样种植简易而通用的接口。

尽多少迁移

firstapp/
__init__.py

Models(模型)

备注,这无异于步是干什么呢? 新建的 app
如果未加至 INSTALL_APPS 中的话, django
就不能自动找到app中的模版文件(app-name/templates/下之公文)和静态文件(app-name/static/中的文书)
, 后面你晤面念及其分别用来干什么.

 

</body>

  设置tab为4个空格:  

接下来于firstapp文件夹下成立templates文件夹,并于templates文件夹下新建一个叫做吧home.html的公文,其编码格式设为utf-8,该文件被写入:

 

<head>

    ├── settings.py配置文件

输入cd wamp\Apache24\
跳转至指定目录下

 

admin.py

 

</html>

urlpatterns = [
        # ... the rest of your URLconf goes here ...
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

输入django-admin.py startproject www
树Python Django工程,生成了一个文本夹www,其结构吧:
www/
manage.py
www/
__init.py
settings.py
urls.py
wsgi.py

 

<!DOCTYPE html>

Admin增强

<html>

  •  页面呈现数据 




    Title

    {{ article.title }}

    {{ article.content }}


  •  禁用SELinux

新建一个Python Django工程:

 

from django.conf.urls import include, url

from django.contrib import admin


urlpatterns = [

    url(r'^$', 'firstapp.views.home', name='home'),

    # url(r'^blog/', include('blog.urls')),


    url(r'^admin/', include(admin.site.urls)),

]

   添加应用叫到settings.py中之INSTALLED_APP里, 

备注:推荐学习网址:
http://www.ziqiangxuetang.com/django/django-tutorial.html

 在最后补充加:

新建一个Python Django项目:

  启动django shell

 

打开www/www/settings.py 文件修改INSTALLED_APPS,在最后一行添加我们建立的firstapp项目名称,修改后如下:

INSTALLED_APPS = (

    'django.contrib.admin',

    'django.contrib.auth',

    'django.contrib.contenttypes',

    'django.contrib.sessions',

    'django.contrib.messages',

    'django.contrib.staticfiles',


    'firstapp',

)

views.py中

views.py
migrations /
__init.py
**
备注, 万一您都发布过Hello
world页面,但是从未利用网页框架,只是简单的当hello.html文本文件被输入Hello
World,然后上传一个网页服务器上,如:http://
127.0.0.1/helloWorld.html.**

* *

输入django-admin.py startapp firstapp
缔造firstapp项目,并转移名称为firstapp文件夹,其布局也

 

打开www/www/
下之urls.py文件,直接修改文件内容:

     4. 执行python manage.py collectstatic

输入E: 跳转E盘

 

搭建环境(建议源码安装,这里为便利介绍yum |
pip安装)

Django Shell

博客编辑页面开发

 

  • 种类别目录结构.
import os

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
#项目的跟目录


# Quick-start development settings - unsuitable for production
# See https://docs.djangoproject.com/en/1.11/howto/deployment/checklist/

# SECURITY WARNING: keep the secret key used in production secret!
SECRET_KEY = 'qkotgzdcj-n!q#1@pwv7cyya!5$cuvqp3d=vrljrbuo48qvr5b'
 #启动项目所必须的安全码


# SECURITY WARNING: don't run with debug turned on in production!
DEBUG = True
#调试,打开后异常会反馈给用户页面


ALLOWED_HOSTS = ['192.168.230.129']
#只允许外界通过【】内的地址访问


# Application definition

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'zzb',
]
#组成项目的应用,自己创建的应用需加进去

MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    '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',
]
#中间件,自带的工具集

ROOT_URLCONF = 'blog.urls'
#url的根文件,指向urls.py

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
            ],
        },
    },
]
#模板(html文件)配置

WSGI_APPLICATION = 'blog.wsgi.application'
#把myblog当做一个模块


# Database
# https://docs.djangoproject.com/en/1.11/ref/settings/#databases

DATABASES = {
    'default': {
#        'ENGINE': 'django.db.backends.sqlite3',
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
        'ENGINE': 'django.db.backends.mysql',
        'NAME':'blog',
        'USER':'root',
        'PASSWORD':'',
        'HOST':'',
        'PORT':'',
        'OPTIONS':{
            'autocommit':True,
        },
    }
}
#数据库配置,使用其他数据库需改动


# Password validation
# https://docs.djangoproject.com/en/1.11/ref/settings/#auth-password-validators

AUTH_PASSWORD_VALIDATORS = [
    {
        'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
    },
    {
        'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
    },
]
#密码认证


# Internationalization
# https://docs.djangoproject.com/en/1.11/topics/i18n/

LANGUAGE_CODE = 'en-us'

TIME_ZONE = 'UTC'

USE_I18N = True

USE_L10N = True

USE_TZ = True


# Static files (CSS, JavaScript, Images)
# https://docs.djangoproject.com/en/1.11/howto/static-files/

STATIC_URL = '/static/'
#静态文件的地址
STATIC_ROOT = '/var/www/html/blog/zzb/static/'
  • 望数据库中描绘副数据

    INSERT INTO zzb_article VALUE(‘1′,’2′,’3’);

  edit_page.html

├── __init__.py

  1. 在views.py中返回render()

    from future import unicode_literals

    from django.shortcuts import render
    # Create your views here.
    from django.http import HttpResponse
    def index(request):

    return render(request,'index.html')
    
  1. 在APP根目录下创办名叫templates(小写)的目录,
  2. 于templates目录下开创为app名为名称的目,将html文件放入其中(解决templates冲突)




    Title

    Hello,Blog


    ├── urls.py配置页面url

  Django是一个根据Python的高级Web开发框架,  特点:高效,快速,高度并(不用好做底层),免费,开源

MySQL

 

:``set expandtab

  输入URL→向目标url发送http请求→服务器将页面响应给浏览器(通过后台编写的代码处理要)→浏览器解析获取到之页面源代码文档(所以看到底匪是html文档)→看到网页

    [root@localhost ~]#python manage.py startapp zzb

目结构

 

    在/var/www/html目录下:

布admin.py,使其出示更多内容

然而一直以admin中管理数据库

 

 

  用manage.py创建以

 

    hellow,world

 

  1. [root@localhost ~]#python manage.py createsuperuser
  2. 进入192.168.230.129/admin登录
  3. 反语言,修改settings.py中LANGUAGE_CODE= ‘zh_Hans’(我之虚拟机改了就算报错,然后就是没去改变)
  4. 布利用

    [root@localhost ~]#python manage.py makemigrations

 

 

 

    判断安装是否做到

 

  •   linux自带Python,无需安装,  
  • 仅次于2.7之版本及最新的Django不兼容

    ├── __init__.py声明模块的公文(默认为空,使myblog为一个模块,可以直接以代码中引用)

 

* *

 

图片 1

  • pip安装pymysql插件
  • 修改blog/__init__.py,添加

    import pymysql
    pymysql.install_as_MySQLdb()

 

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Article Page</title>
</head>
<body>
<h1>{{ article.title }}
</h1>
<h3>{{ article.content }}</h3>
<br/><br/>
<a href="{% url 'zzb:edit_page' article.id %}">修改文章</a>
</body>
</html>

 

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from models import Article
# Register your models here.
admin.site.register(Article)

博客主页面开发

 

进入admin:

    systemctl start httpd

 

views.py配置 *

*  [root@localhost ~]#*pip install Django==1.10.2

 **manage.py**

创建第一独页面(响应)

应用过滤器简化edit_page.html

 

Django tried loading these templates, in this order:

Using engine django:
django.template.loaders.app_directories.Loader: /usr/lib64/python2.7/site-packages/django/contrib/admin/templates/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /usr/lib64/python2.7/site-packages/django/contrib/auth/templates/index.html (Source does not exist)
django.template.loaders.app_directories.Loader: /var/www/html/blog/zzb/templates/index.html (Source does not exist)

     在MySQL中执行:

.├── admin.py  (该行使之后台管理体系安排(django自带一个后台管理网,每个应用都发生独家的安排文件)

  • 开拓页面(192.168.230.129/index) 

  {{ value | filter }}

   安装(二选一)

 

  {{ value | filter | filter | filter }} 可叠加

 

 

 
    
安装mod_wsgi(yum install mod_wsgi)

  如:

  html文件在zzb/templates/zzb下,然而Django没有检索这同一索引,只能被迫将index.html放在templates目录下

  1 # -*- coding: utf-8 -*-
  2 from __future__ import unicode_literals
  3 
  4 from django.shortcuts import render
  5 
  6 # Create your views here.
  7 from django.http import HttpResponse
  8 from . import models
  9 
 10 def index(request):
 11     article = models.Article.objects.get(pk=1)
 12     return render(request,'zzb/index.html',{'article':article})

 

<DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Edit Page</title>
    </head>
    <body>
        <form action="{% url 'zzb:edit_action' %}" method="post">
{% csrf_token %}
<!--解决跨站请求伪造问题,POST表单需要添加这句--!>
            <input type="hidden" name="article_id" value="{{ article.id | default:'0'}}">
<!--default过滤器,默认值--!>
            <label>文章标题
                <input type="text" name = "title" value="{{ article.title }}"/>
            </label>
            <br/>
            <label>文章内容
                <input type="text" name = "content" value="{{ article.content }}"/>
            </label>
            <br/>
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>

    :``set ts=4

 

    2.
以动目录下创办static目录,在settings.py中上加STATIC_ROOT=’你的ststic的文件夹地址’

什么是django?

<!DOCTYPE HTML>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<h1>
    <a href="{% url 'zzb:edit_page' 0 %}">新文章</a>
</h1>
{% for article in articles %}
    <a href="{% url 'zzb:article_page' article.id %}">{{ article.title }}</a>
    <br/>
{% endfor %}
</body>
</html>

  作用:1)调试工作  2)测试未知的点子

  • 每当settings.py中修改,使用MySQL代替django自带数据库.

    DATABASES = {

    'default': {
    

    # ‘ENGINE’: ‘django.db.backends.sqlite3’,
    # ‘NAME’: os.path.join(BASE_DIR, ‘db.sqlite3’),

        'ENGINE': 'django.db.backends.mysql',
        'NAME':'blog',
        'USER':'root',
        'PASSWORD':'',
        'HOST':'',
        'PORT':'',
        'OPTIONS':{
        'autocommit':True,
        },
    }
    

    }

  • 在数据库被开创名也blog的数据库

图片 2

# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.contrib import admin
from models import Article
class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content','pub_time')

#根据时间进行筛选的过滤器

    list_filter = ('pub_time',)

# Register your models here.
admin.site.register(Article,ArticleAdmin)

     [root@localhost ~]#django-admin startproject
blog(新命令django-admin)    会在/var/www/html/下特别成一个初的公文夹blog

 

  • a) pip安装(需要地方有python-pip)

 

          配置型中wsgi (点击跳转后续详解)

INSTALLED_APPS = [ 
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'zzb',
] 

  过滤器属于django模板语言,  修改模板被的变量,从而展示不同内容

URL配置增强

 

创建第一独类型

  修改settings.py,输入linux本机ip

 

 

    [root@localhost ~]#python manage.py migrate(会在app/migrations/目录下生成移植文件)

 

└── wsgi.py(Python Web Server Gateway Interface
服务器网关接口,python应用及Web服务器之间的接口,)

 

    在动目录下的admin.py中召开如下修改* *

  • b) 下充斥源码(执行效率还胜似),进入源码目录执行[root@localhost
    ~]#
    python setup.py install

url配置

    vim ~/.vimrc  

│   └── __init__.py(有这个文件说明她是一个模块)

  • 开辟浏览器,输入192.168.230.135/blog/index

    1.
失djando的解压包里的/doc/howto/static-files中查阅帮助文档,找到解决办法

 

  python交互式命令行程序,自动引入项目条件,可以采取它们跟花色进行相互 

 

          修改apache配置文件(点击跳转后续详解) 

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected.
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

    3. 以urls.py中补充加修改 

 

图片 3

 

    hello,world

  • 局部情况修改urls.py后,需要再行启apache才能看到成效,不知底为何,请注意.

 

  •  应用的目结构

    from blog.models import Article

创办第一单Templates(模板)

  举例:{{ list_nums |
length}}    表示list的长度

布置models.py,增加时参数

  • 厌倦了手动启动httpd,mariadb?

  本课程基于慕课网<Django入门与履行>编写,基于CentOS
7

<DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>Edit Page</title>
    </head>
    <body>
        <form action="{% url 'zzb:edit_action' %}" method="post">
{% csrf_token %}
<!--上面一行用于跨站请求伪造保护措施-->
{% if article %}
<!--如果有该文章-->
            <input type="hidden" name="article_id" value="{{ article.id }}">
<!--传id到后台-->
            <label>文章标题
                <input type="text" name = "title" value="{{ article.title }}"/>
            </label>
            <br/>
            <label>文章内容
                <input type="text" name = "content" value="{{ article.content }}"/>
            </label>
            <br/>
{% else %}
<!--如果没有该文章-->
<input type="hidden" name="article_id" value="0">
<label>文章标题
                <input type="text" name = "title" />
            </label>
            <br/>
            <label>文章内容
                <input type="text" name = "content" />
            </label>
            <br/>
{% endif %}
            <input type="submit" value="提交"/>
        </form>
    </body>
</html>
  •  配置urls.py(每个url都因url函数的样式写在urlpatterns列表中。三个参数(URL(正则),对诺响应措施,名称zzb为以名叫)

 

 

  • Python有严厉的缩进要求,一个tab设置也4单空格,如上述文档有缩进错误,请自行更凑巧

博客文章页面开发

 

  • 片情况在templates下开创为用为名的目(解决冲突)后,Django不能读取放在里面的html文件,(很纳闷,不知道怎么)

├── apps.py  拖欠利用之一些安排,1.9本子后才生。

├── migrations 数据迁移模块

博客开发

  • 修改数据默认显示的称谓(改了后头非知情为何时而有效时而无效)

苟发荒唐,请评论指出

 

 

正规开始创造博客系统

  yum install mariadb mariadb-server

 

 settings.py

  如root@localhost ~]#python manage.py runserver(直接输入python
manage.py可以排有命令选项)

ALLOWED_HOSTS = ['192.168.230.129']

    在动下的admin.py中引入自身之models模块(或者其中的模型类)

 

 

  mysql的以要参考其他课程,这里不作介绍

  将她们添加到开机启动项:

 

    只待用chkconfig 服务名 on即可,若想关闭,将on改呢off

 

 

 

 

Python

  index.html

 

from django.conf.urls import url

from django.contrib import admin

import zzb.views as bv

urlpatterns = [
    url(r'^admin/', admin.site.urls),
    url(r'^index/',bv.index),
]
WSGIScriptAlias / /var/www/html/blog/blog/wsgi.py
WSGIPythonPath /var/www/html/blog
LoadModule wsgi_module modules/mod_wsgi.so
ErrorLog "logs/error_log"
<Directory /var/www/html/blog/blog>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

 

    pyhton manage.py shell

  • 有关admin页面没有css样式的解决办法 

上网的流程

  • 修改blog下的url(注意url后面的/问题),引入include

    from django.conf.urls import url,include
    from django.contrib import admin

    urlpatterns = [

    url(r'^admin/', admin.site.urls),
    url(r'^blog/',include('zzb.urls') ),
    

    ]

  • 在app(zzb)下新建urls.py 

    from django.conf.urls import url
    from . import views
    urlpatterns = [

    url(r'^index/$',views.index),
    

    ]

  • 起先Apache,关闭防火墙

  交互举例:

└── myblog项目的一个器皿,包含项目最好中心的有的布局(不建议改名称,会影响配置文件)

  article_page.html

  用django-admin创建项目

 

  

      可以由此实施[root@localhost ~]#python manage.py
sqlmigrate 应用名 文件id(查看SQL语句)

├── models.py  数据模块(在内部创建数据表)使用ORM框架,类似于MVC结构中的Models(模型)

├── tests.py 自动测试模块,在此间修测试脚本(语句)

  • 配置wsgi.py,盖运用的无是django自带的服务器,而是apache,若配置相同则未待改 

    import os

    from django.core.wsgi import get_wsgi_application

    os.environ.setdefault(“DJANGO_SETTINGS_MODULE”, “blog.settings”)

    application = get_wsgi_application()

├── manage.py与种类开展互的吩咐行工具集的输入(项目管理器)

Admin(自动化数据管理界面)

[root@192 ~]# mysql -uroot -p
Enter password: 

MariaDB [(none)]> use blog;

Database changed
MariaDB [blog]> select * from zzb_article
    -> ;
+----+-------+---------+
| id | title | content |
+----+-------+---------+
|  1 | 2     | 3       |
+----+-------+---------+
1 row in set (0.00 sec)
  • 修改apache配置文件(/etc/httpd/conf/httpd.conf),  修改配置文件后再行启apache**

    一个model对许一律摆数据表,以类的款式表现,包含类有主导字段以及数据的一对行为.  ORM(object
relation mapping)对象关联映射,不需要编制SQL语句

    systemctl stop firewalld

 

Django(自带一个袖珍的服务器)

    *[root@localhost ~]#* python -m django –-version   

形容在最终:

 

    Article.objects.all()

Templates过滤器

  • 倘出现如下错误,则是从未关SELinux,禁用后再也开可解决.
from django.conf.urls import url
from . import views
urlpatterns = [
    url(r'^index/$', views.index),
    url(r'^article/(?P<article_id>[0-9]+)/$', views.article_page, name='article_page'),
    url(r'^edit/(?P<article_id>[0-9]+)/$',views.edit_page, name='edit_page'),
    url(r'^edit/action/$',views.edit_action, name='edit_action'),
]
# -*- coding: utf-8 -*-
from __future__ import unicode_literals

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=32, default='Title')
    content = models.TextField(null=True)
    pub_time = models.DateTimeField(null=True)
    def _unicode_ (self):
        return self.title

     每个函数必须回到一个响应,函数必须存在一个参数,一般约定为request,对诺一个URL 

 

 将Django部署到Apache服务器上

 

 

   systemctl restart httpd

   种类的终究部署文件,包含了数据库、web应用、时间等各种配置文件

  • 使到底目录下创办models.py,并引入models模块,创建类,继承models.Model,类就凡是如出一辙张数据表,在类似吃创造字段

    from future import unicode_literals

    from django.db import models

    # Create your models here.
    class Article(models.Model):

    title = models.CharField(max_length=32, default='Title')
    content = models.TextField(null=True)
    def _unicode_ (self):
        return self.title
    
  •  变迁数据表

 
  

 

基础知识

网站地图xml地图