能够沟通业务的网站,做现金贷的网站有哪些,如何设计网站的主菜单,wordpress可视化编辑插件下载静态文件处理
静态文件#xff1a;如#xff1a;图片、音频、视频、css、js等静态文件的相关配置也在 项目名/项目名/settings.py 文件中进行配置
- 配置静态文件的访问路径STATIC_URL- 功能#xff1a;通过哪个 url 地址找静态文件- 默认配置#xff1a;STATIC_URL /sta…静态文件处理
静态文件如图片、音频、视频、css、js等静态文件的相关配置也在 项目名/项目名/settings.py 文件中进行配置
- 配置静态文件的访问路径STATIC_URL- 功能通过哪个 url 地址找静态文件- 默认配置STATIC_URL /static/- 说明指定访问静态文件时是需要通过 /static/xxx 或 http://IP:端口/static/xxx 获取的xxx表示具体的静态资源位置
- 配置静态文件的存储路径STATICFILES_DIRS- STATICFILES_DIRS保存的是静态文件在服务器端的存储位置- 该配置的值是一个元组单元素时注意逗号实验使用Django显示静态图片资源
]# django-admin startproject mysite2]# vim mysite2/mysite2/settings.pyBASE_DIR os.path.dirname(os.path.dirname(os.path.abspath(__file__))) # 当前项目的绝对路径MIDDLEWARE [ # 中间件配置...# django.middleware.csrf.CsrfViewMiddleware, # 注释掉 csrf否则Django将会拒绝客户端发来的POST请求报403响应...]...TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS:[os.path.join(BASE_DIR,templates)], # 指定模板目录...},]LANGUAGE_CODE zh-Hans # 中文TIME_ZONE Asia/Shanghai # 东八区STATIC_URL /static/ # 访问静态文件的URLSTATICFILES_DIRS (os.path.join(BASE_DIR, static),) # 指定静态文件的存储目录# mysite2/static注意元组中的逗号]# mkdir mysite2/templates # 创建模板目录
]# mkdir mysite2/static # 创建静态文件存储目录
]# mkdir mysite2/static/{image,css,js}
]# ls mysite2/static/image/Django.png # 放入一张图片]# vim mysite2/mysite2/urls.py # 主路由文件
from django.urls import path
from . import views
urlpatterns [path(test_static, views.test_static),
]]# vim mysite2/mysite2/views.py # 视图文件
from django.shortcuts import render
def test_static(request):return render(request, test_static.html)]# vim mysite2/templates/test_static.html # 模板
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title
/head
bodypicturesimg srchttp://127.0.0.1:8000/static/image/Django.png width200px height200pximg src/static/image/Django.png width200px height200px
/body
/html]# python3 mysite2/manage.py runserver浏览器访问http://127.0.0.1:8000/test_static成功显示两张图片
F12查看网络可以发现相同图片只加载一次# 标签加载静态文件 {% load static %} {% static xxx %}
]# vim mysite2/templates/test_static.html # 模板
!DOCTYPE html
html langen
headmeta charsetUTF-8titleTitle/title
/head
bodypicturesimg srchttp://127.0.0.1:8000/static/image/Django.png width200px height200pximg src/static/image/Django.png width200px height200px{% load static %}img src{% static image/Django.png %} width200px height200px
/body
/html浏览器访问http://127.0.0.1:8000/test_static成功显示三张图片
F12查看元素可以发现使用标签加载静态文件显示为使用相对URL路径img src/static/image/Django.png width200px height200px]# vim mysite2/mysite2/settings.pySTATIC_URL /statics/ # 加个s
浏览器访问http://127.0.0.1:8000/test_static只成功显示第三张图片应用与分布式路由 创建应用并注册
应用在Django项目中是一个独立的业务模块可以包含自己的路由视图模板模型# 创建应用
]# cd 项目名
项目名]# python3 manage.py startapp 应用名# 应用内部结构
项目名]# ls 应用名/ migrations目录 # 保存数据迁移的中间文件__init__.py # 应用子包的初始化文件admin.py # 应用的后台管理配置文件apps.py # 应用的属性配置文件models.py # 与数据库相关的模型映射文件tests.py # 应用的单元测试文件views.py # 定义视图处理函数的文件# 注册应用
项目名]# vim 项目名/settings.pyINSTALLED_APPS [...应用名, # 安装应用...]示例音乐应用
]# django-admin startproject mysite3
]# cd mysite3
mysite3]# python3 manage.py startapp music # 创建应用目录
mysite3]# vim mysite3/settings.py # 注册应用INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,music,]配置分布式路由
Django中主路由配置文件项目名/项目名/urls.py可以不处理用户具体路由主路由配置文件可以做请求的分发分布式请求处理。具体的请求可以由各自的应用来进行处理。# 配置分布式路由主路由文件——》子路由文件——》对应的视图文件视图函数
]# vim 项目名/项目名/urls.py # 主路由文件
from django.urls import path, include # 引入include
urlpatterns [path(应用名/, include(应用名.urls)),# http://IP:端口/应用名/
]]# vim 项目名/应用名/urls.py # 子路由文件
from django.urls import path
from . import views
urlpatterns [path(index, views.视图函数名), # http://IP:端口/应用名/index
]]# vim 项目名/应用名/views.py # 视图文件
from django.shortcuts import render
from django.http import HttpResponse
def 视图函数名(request):return HttpResponse(这是音乐首页)示例音乐应用
]# vim mysite3/mysite3/urls.py # 主路由文件
from django.urls import path, include # 引入include
urlpatterns [path(music/, include(music.urls)),# http://IP:端口/music/# 项目名/music/urls.py
]]# vim mysite3/music/urls.py # 子路由文件
from django.urls import path
from . import views
urlpatterns [path(index, views.index_view), # http://IP:端口/music/index
]]# vim mysite3/music/views.py # 视图文件
from django.shortcuts import render
from django.http import HttpResponse
def index_view(request):return HttpResponse(这是音乐首页)浏览器访问http://127.0.0.1:8000/music/index示例多应用
# 要求
- 创建sport应用并注册
- 创建news应用并注册
- 创建分布式路由系统- http://127.0.0.1:8000/sport/index交给sport应用中的index_view()函数处理- http://127.0.0.1:8000/news/index交给news应用中的index_view()函数处理]# cd mysite3
mysite3]# python3 manage.py startapp sport # 创建应用目录
mysite3]# python3 manage.py startapp news # 创建应用目录mysite3]# vim mysite3/settings.py # 注册应用
INSTALLED_APPS [django.contrib.admin,django.contrib.auth,django.contrib.contenttypes,django.contrib.sessions,django.contrib.messages,django.contrib.staticfiles,music,news, # 添加应用sport, # 添加应用
]mysite3]# vim mysite3/urls.py # 主路由文件
from django.urls import path, include
from . import views
urlpatterns [path(music/, include(music.urls)),path(sport/, include(sport.urls)),path(news/, include(news.urls)),
]mysite3]# vim sport/urls.py # 子路由文件
from django.urls import path
from . import views
urlpatterns [path(index, views.index_view), # http://IP:端口/sport/index
]mysite3]# vim sport/views.py # 视图文件
from django.shortcuts import render
from django.http import HttpResponse
def index_view(request):return HttpResponse(这是体育首页)mysite3]# vim news/urls.py # 子路由文件
from django.urls import path
from . import views
urlpatterns [path(index, views.index_view), # http://IP:端口/news/index
]mysite3]# vim news/views.py # 视图文件
from django.shortcuts import render
from django.http import HttpResponse
def index_view(request):return HttpResponse(这是新闻首页)浏览器访问http://127.0.0.1:8000/sport/index
浏览器访问http://127.0.0.1:8000/news/index应用下的模板
概念与理解
应用内部可以配置模板目录 应用下手动创建templates文件夹settings.py中开启应用模板功能 TEMPLATES配置项中的 APP_DIRS 值为 True 即可 应用下templates和外层templates都存在时Django得查找模板规则 优先查找外层templates目录下的模板按 INSTALLED_APPS 配置下的应用顺序逐层查找
实验在应用中配置模板文件 应用news下手动创建 templates 文件夹 在 settings.py 中开启应用模板功能 TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates)],APP_DIRS: True, # 是否启用应用下的模板默认为True在 mysite3/news/templates 下创建 index.html 模板文件编写模板内容 !DOCTYPE html
html langen
headmeta charsetUTF-8title新闻首页/title
/head
body
我是新闻频道首页
/body
/html在 mysite3/news/views.py 中修改视图函数 index_view from django.shortcuts import render
from django.http import HttpResponsedef index_view(request):# return HttpResponse(这是新闻首页)return render(request, index.html)查看服务是否重启浏览器访问http://127.0.0.1:8000/news/index查看模板加载是否成功 如果此时在外层的 templates 中也创建 index.html 文件 !DOCTYPE html
html langen
headmeta charsetUTF-8title首页/title
/head
body
我是首页
/body
/html查看服务是否重启浏览器访问http://127.0.0.1:8000/news/index查看模板加载结果是否有冲突 如果此时在外层的 templates 中也创建 index.html 文件经测试后会优先找外层文件 解决方式 将应用中存储模板的路径改为应用下—templates—应用名—index.html 在 mysite3/news/views.py 中修改视图函数 index_view def index_view(request):# return HttpResponse(这是新闻首页)return render(request, news/index.html) # 修改渲染模板路径改为APP内部模板路径]# vim mysite3/news/templates/news/index.html 看服务是否重启浏览器访问http://127.0.0.1:8000/news/index查看模板加载结果
模型层
概念与理解
回顾 Django MTV
模型层负责跟数据库中间进行通信
准备Django配置MySQL # 安装数据库服务并且创建数据库
]# yum -y install mariadb-server
]# systemctl start mariadb
]# systemctl enable mariadb
]# mysqladmin -u root password
New password: 123456
Confirm new password: 123456
]# mysql -uroot -p123456
MariaDB [(none)] CREATE DATABASE mysite3 DEFAULT CHARSET utf8;# Django项目配置mysql信息
]# vim mysite3/mysite3/settings.py
DATABASES {default: {ENGINE: django.db.backends.mysql, # 更改数据引擎HOST: 127.0.0.1, # 数据库服务所在的主机地址PORT: 3306 # 端口号USER: root, # 连接数据库的用户名PASSWORD: 123456, # 连接数据库用户名的密码NAME: mysite3, # 操作的数据库名称}
}# 测试迁移数据库数据
]# python3 mysite3/manage.py migrateOperations to perform:Apply all migrations: admin, auth, contenttypes, sessionsRunning migrations:Applying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying admin.0003_logentry_add_action_flag_choices... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying auth.0008_alter_user_username_max_length... OKApplying auth.0009_alter_user_last_name_max_length... OKApplying auth.0010_alter_group_name_max_length... OKApplying auth.0011_update_proxy_permissions... OKApplying sessions.0001_initial... OK]# mysql -uroot -p123456 -e show tables from mysite3;什么是模型
不同后端数据库的使用命令不一致因此可以通过使用模型类来使用一致的手段操作不同的后端数据库避免后续项目更换数据库导致的修改工作。- 什么是模型- 模型是一个 Python 类它是由 django.db.models.Model 派生出的子类- 一个模型类代表数据库中的一张数据表- 模型类中每一个类属性都代表数据库中的一个字段- 模型是数据交互的接口是表示和操作数据库的方法和方式
- models.py- 模型类写在指定应用 app 的 models.py 模块中 ORM框架
#### 定义ORMObject Relational Mapping即对象关系映射它是一种程序技术它允许你使用类和对象对数据库进行操作从而避免通过SQL语句操作数据库#### 作用- 建立模型类和表之间的对应关系允许我们通过面向对象的方式来操作数据库
- 根据设计的模型类生成数据库中的表格
- 通过简单的配置就可以进行数据库的切换#### 优点- 只需要面向对象编程不需要面向数据库编写SQL脚本
- 对数据库的操作都转换成对类属性和方法的操作
- 不用写各种数据库的SQL语句
- 实现了数据模型与数据库的解耦屏蔽了不同数据库操作上的差异
- 不再关注用的是MySQL、Oracle或是其他数据库的内部细节
- 通过简单的配置就可以轻松切换数据库而不需要修改代码#### 缺点- 对于复杂业务使用成本较高
- 根据对象的操作转换成SQL语句根据查询的结果转换成对象在映射过程中由性能损失
映射图 实验添加模型类
此示例为添加一个 bookstore_book 数据表来存放图书馆中数目的信息 添加一个 bookstore 的 app python3 manage.py startapp bookstore 添加模型类并注册 app # settings.py
INSTALLED_APPS [# ......bookstore
]模型类代码示例 # file: bookstore/models.py
from django.db import modelsclass Book(models.Model): # Book类继承models.Model类# 通过属性来指定表的字段。CharField、DecimalField...指定表字段的类型title models.CharField(书名, max_length50, default)price models.DecimalField(定价, max_digits7, decimal_places2, default0.0)# 最大7位数字整数小数小数部分2位 数据库迁移 迁移是 Django 同步对模型所做修改添加模型删除模型等到数据库模式的方式生成迁移文件—执行 python3 manage.py makemigrations将应用下的 models.py 文件生成一个中间文件并保存在 migrations 文件夹中 (testenv) [rootlocalhost mysite3]# python3 manage.py makemigrations
Migrations for bookstore:bookstore/migrations/0001_initial.py- Create model Book执行迁移脚本程序—执行 python3 manage.py migrate执行迁移程序实现数据迁移将每个已注册应用下的 migrations 文件夹中的中间文件同步回数据库 (testenv) [rootlocalhost mysite3]# python3 manage.py migrate
Operations to perform:Apply all migrations: admin, auth, bookstore, contenttypes, sessions
Running migrations:Applying bookstore.0001_initial... OK查看数据库验证指定表是否创建成功 (testenv) [rootlocalhost mysite3]# mysql -uroot -p123456
MariaDB [(none)] USE mysite3;
MariaDB [mysite3] SHOW TABLES;
----------------------------
| Tables_in_mysite3 |
----------------------------
| auth_group |
| auth_group_permissions |
| auth_permission |
| auth_user |
| auth_user_groups |
| auth_user_user_permissions |
| bookstore_book |
| django_admin_log |
| django_content_type |
| django_migrations |
| django_session |
----------------------------
MariaDB [mysite3] DESC bookstore_book;
---------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
---------------------------------------------------------
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(50) | NO | | NULL | |
| price | decimal(7,2) | NO | | NULL | |
---------------------------------------------------------创建模型类流程
创建应用
使用 python3 manage.py startapp 应用名称 的方式创建应用然后要及时的在 settings.py 文件中进行注册
在应用下的models.py中编写模型类 模型类的类名是数据表名的一部分建议类名首字母大写类属性名此名称将作为数据表的字段名字段类型用来映射到数据表中的字段的类型字段选项为这些字段提供附加的参数信息
迁移同步 makemigrations migrate
模型类修改
任何关于表结构的修改务必在对应模型类上修改例为 bookstore_book 表添加一个名为 info 的字段类型是 varchar(100)解决方案
模型类中添加对应类属性执行数据库迁移
字段类型
BooleanField()CharField()数据库类型tinyint(1)数据库类型varchar编程语言中使用True或False来表示值注意必须要指定max_length参数值在数据库中使用1或0来表示具体的值DateField()DateTimeField()数据库类型date 作用表示日期数据库类型datetime参数以下参数只能三选一作用表示日期和时间1.auto_now每次保存对象时自动设置该字段为当前时间参数同DateField2.auto_now_add当对象第一次被创建时自动设置当前时间FloatField()注意1和2两个选项取值范围True/False数据库类型double3.default设置当前时间(取值字符串格式时间如2019-01-01)编程语言中和数据库中都使用小数表示值DecimalField()IntergerField()数据库类型decimal(x, y)数据库类型int编程语言中和数据库中使用小数表示编程语言和数据库中使用字符串参数EmailField()1.max_digits位数总数包括小数点后的位数该值必须大于等于decimal_places数据库类型varchar2.decimal_places小数点后的数字数量编程语言和数据库中使用字符串
字段选项
字段选项指定创建的列的额外信息允许出现多个字段选项多个选项之间使用隔开- primary_key- 如果设置为True表示该列为主键如果指定一个字段为主键则此数据库不会创建id字段- null- 如果设置为True表示该列值允许为空- 默认为 False如果此选项为 False建议加入 defalut 选项来设置默认值- db_column- 指定列的名称如果不指定则采用属性名作为列名- verbose_name- 设置此字段在 admin 界面上的显示名称- 字段选项样例- default- 设置所在列的默认值如果字段选项 nullFalse 建议添加此选项- db_index- 如果设置为 True表示为该列增加索引- unique- 如果设置为 True表示该字段在数据库中的值必须是唯一的
模型类-Meta类
使用内部Meta类来给模型赋予属性Meta类下有很多内建的类属性可对模型类做一些控制
示例
练习修改模型类
模型类-Book 表名 book title - CharField(50)–书名 唯一pub–CharField(100) - 出版社 非空price–DecimalField – 图书定价 总位数7/小数点2位market_price – 图书零售价 总位数7/小数点2位 模型类-Author 表名 author name–CharField(11) – 姓名 非空age – IntegerField – 年龄 默认值为1email – EmailField – 邮箱 允许为空
解决方式 修改模型类—bookstore/models.py # file: bookstore/models.py
from django.db import modelsclass Book(models.Model):title models.CharField(书名, max_length50, default, uniqueTrue)pub models.CharField(出版社, max_length50, default)price models.DecimalField(定价, max_digits7, decimal_places2, default0.0)market_price models.DecimalField(零售价, max_digits7, decimal_places2, default0.0)class Meta:# 设置表名。默认表名应用名_模型类名db_table bookclass Author(models.Model):name models.CharField(姓名, max_length11)age models.IntegerField(年龄, default1)email models.EmailField(邮箱, nullTrue)class Meta:db_table author数据迁移 (testenv) [rootlocalhost mysite3]# python3 manage.py makemigrations
(testenv) [rootlocalhost mysite3]# python3 manage.py migrate数据库检测 (testenv) [rootlocalhost mysite3]# mysql -uroot -p123456
MariaDB [(none)] USE mysite3;
MariaDB [mysite3] SHOW TABLES;
| author |
| book |MariaDB [mysite3] DESC author;
---------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
---------------------------------------------------------
| id | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(11) | NO | | NULL | |
| age | int(11) | NO | | NULL | |
| email | varchar(254) | YES | | NULL | |
---------------------------------------------------------MariaDB [mysite3] DESC book;
----------------------------------------------------------------
| Field | Type | Null | Key | Default | Extra |
----------------------------------------------------------------
| id | int(11) | NO | PRI | NULL | auto_increment |
| title | varchar(50) | NO | UNI | NULL | |
| price | decimal(7,2) | NO | | NULL | |
| market_price | decimal(7,2) | NO | | NULL | |
| pub | varchar(50) | NO | | NULL | |
----------------------------------------------------------------常见问题处理
问题1当执行 python3 manage.py makemigrations 出现如下迁移错误时的处理方法 错误原因
当对模型类新添加一个字段时可能出现如下错误原理是添加新字段后数据库不知道原来已有数据对于新建字段该如何赋值所以新增字段时务必添加default默认值
处理方法
选择1则会shell中手动输入一个默认值选择2(推荐)退出当前生成迁移文件过程修改models.py新增一个 defaultxxx 的缺省值
问题2数据库的迁移文件混乱解决办法
数据库中django_migrations表记录了migrate的全过程项目各应用中migrate文件应与之对应否则migrate会报错
解决方案
删除所有migrations里所有的000?_xxxx.py(init.py除外)删除数据库 sql drop database 自定义项目数据库; 重新创建数据库 sqlCREATE DATABASE自定义项目数据库 DEFAULT CHARSET utf8; 重新生成migrations里所有的 000?_xxx.py python3 manage.py makemigrations 重新更新数据库 python3 manage.py migrate
ORM基本操作
ORM操作 基本操作包括增删改查即CRUD操作 CRUD是指在做计算处理时的增加(create)读取查询(read)更新(update)和删除(delete) ORM CRUD 核心 - 模型类.管理器对象 管理器对象
每个继承自models.Model的模型类都会有一个objects对象被同样继承下来这个对象叫做管理器对象数据库的增上改查可以通过模型的管理器实现 创建数据
Django ORM 使用一种直观的方式把数据库表中的数据表示成Python对象创建数据中每一条记录就是创建一个数据对象
方案1 MyModel.objects.create(属性1值1,属性2值2,…) 成功返回创建好的实体对象 失败抛出异常 **方案2**创建MyModel实例对象并调用save()进行保存 Django Shell
在 Django 中提供了一种交互式操作项目叫做 Django Shell能够在交互模式用项目工程代码执行相应的操作利用 Django Shell 可以代替编写 view 视图层的代码进行直接操作注意项目代码发生变化时需要重新进入Django Shell启动方式 python3 manage.py shell
实验使用 Django Shell 添加数据 启动 Django Shell代码发生变化需要重新进入 (testenv) [rootlocalhost mysite3]# python3 manage.py shell测试 方案1 后查看数据库 # Django Shellfrom bookstore.models import BookBook.objects.create(titlePython, pub清华大学出版社, price20, market_price25)
Book: Book object (1)
# mysql
MariaDB [mysite3] select * from book;
--------------------------------------------------------
| id | title | price | market_price | pub |
--------------------------------------------------------
| 1 | Python | 20.00 | 25.00 | 清华大学出版社 |
--------------------------------------------------------测试 方案2 后查看数据库 # Django Shellfrom bookstore.models import Bookb2 Book(titleDjango, pub清华大学出版社, price70, market_price75)b2.save()
# mysql
MariaDB [mysite3] select * from book;
--------------------------------------------------------
| id | title | price | market_price | pub |
--------------------------------------------------------
| 1 | Python | 20.00 | 25.00 | 清华大学出版社 |
| 2 | Django | 70.00 | 75.00 | 清华大学出版社 |
--------------------------------------------------------静态文件 文章转载自: http://www.morning.xdpjf.cn.gov.cn.xdpjf.cn http://www.morning.lhzqn.cn.gov.cn.lhzqn.cn http://www.morning.ptysj.cn.gov.cn.ptysj.cn http://www.morning.zpxwg.cn.gov.cn.zpxwg.cn http://www.morning.xkhxl.cn.gov.cn.xkhxl.cn http://www.morning.gqksd.cn.gov.cn.gqksd.cn http://www.morning.mxdhy.cn.gov.cn.mxdhy.cn http://www.morning.bsqth.cn.gov.cn.bsqth.cn http://www.morning.xpqsk.cn.gov.cn.xpqsk.cn http://www.morning.ailvturv.com.gov.cn.ailvturv.com http://www.morning.hwhnx.cn.gov.cn.hwhnx.cn http://www.morning.lkhgq.cn.gov.cn.lkhgq.cn http://www.morning.xqbbc.cn.gov.cn.xqbbc.cn http://www.morning.ywpwg.cn.gov.cn.ywpwg.cn http://www.morning.zwtp.cn.gov.cn.zwtp.cn http://www.morning.btwrj.cn.gov.cn.btwrj.cn http://www.morning.ndcjq.cn.gov.cn.ndcjq.cn http://www.morning.nxzsd.cn.gov.cn.nxzsd.cn http://www.morning.tnyanzou.com.gov.cn.tnyanzou.com http://www.morning.pthmn.cn.gov.cn.pthmn.cn http://www.morning.hkshy.cn.gov.cn.hkshy.cn http://www.morning.lmfxq.cn.gov.cn.lmfxq.cn http://www.morning.wcqxj.cn.gov.cn.wcqxj.cn http://www.morning.bkslb.cn.gov.cn.bkslb.cn http://www.morning.czwed.com.gov.cn.czwed.com http://www.morning.kehejia.com.gov.cn.kehejia.com http://www.morning.rlbfp.cn.gov.cn.rlbfp.cn http://www.morning.zjcmr.cn.gov.cn.zjcmr.cn http://www.morning.zcfsq.cn.gov.cn.zcfsq.cn http://www.morning.rfgc.cn.gov.cn.rfgc.cn http://www.morning.bgpb.cn.gov.cn.bgpb.cn http://www.morning.ftznb.cn.gov.cn.ftznb.cn http://www.morning.gkktj.cn.gov.cn.gkktj.cn http://www.morning.lhrcr.cn.gov.cn.lhrcr.cn http://www.morning.hgsylxs.com.gov.cn.hgsylxs.com http://www.morning.cbqqz.cn.gov.cn.cbqqz.cn http://www.morning.zfzgp.cn.gov.cn.zfzgp.cn http://www.morning.lbssg.cn.gov.cn.lbssg.cn http://www.morning.cyhlq.cn.gov.cn.cyhlq.cn http://www.morning.xmpbh.cn.gov.cn.xmpbh.cn http://www.morning.bpmz.cn.gov.cn.bpmz.cn http://www.morning.ljzqb.cn.gov.cn.ljzqb.cn http://www.morning.lstmg.cn.gov.cn.lstmg.cn http://www.morning.qphdp.cn.gov.cn.qphdp.cn http://www.morning.xqjh.cn.gov.cn.xqjh.cn http://www.morning.bdfph.cn.gov.cn.bdfph.cn http://www.morning.mkyxp.cn.gov.cn.mkyxp.cn http://www.morning.jnoegg.com.gov.cn.jnoegg.com http://www.morning.ccffs.cn.gov.cn.ccffs.cn http://www.morning.yjmlg.cn.gov.cn.yjmlg.cn http://www.morning.tfpmf.cn.gov.cn.tfpmf.cn http://www.morning.msfqt.cn.gov.cn.msfqt.cn http://www.morning.qxycf.cn.gov.cn.qxycf.cn http://www.morning.nrxsl.cn.gov.cn.nrxsl.cn http://www.morning.ntnml.cn.gov.cn.ntnml.cn http://www.morning.kcbml.cn.gov.cn.kcbml.cn http://www.morning.ypktc.cn.gov.cn.ypktc.cn http://www.morning.hmnhp.cn.gov.cn.hmnhp.cn http://www.morning.lqlhw.cn.gov.cn.lqlhw.cn http://www.morning.ykkrg.cn.gov.cn.ykkrg.cn http://www.morning.qnbsx.cn.gov.cn.qnbsx.cn http://www.morning.nykzl.cn.gov.cn.nykzl.cn http://www.morning.npbgj.cn.gov.cn.npbgj.cn http://www.morning.fpyll.cn.gov.cn.fpyll.cn http://www.morning.ngkgy.cn.gov.cn.ngkgy.cn http://www.morning.zqcsj.cn.gov.cn.zqcsj.cn http://www.morning.kaweilu.com.gov.cn.kaweilu.com http://www.morning.hcwjls.com.gov.cn.hcwjls.com http://www.morning.ghxtk.cn.gov.cn.ghxtk.cn http://www.morning.fhghy.cn.gov.cn.fhghy.cn http://www.morning.jwgnn.cn.gov.cn.jwgnn.cn http://www.morning.lfbzg.cn.gov.cn.lfbzg.cn http://www.morning.fthcn.cn.gov.cn.fthcn.cn http://www.morning.rdnkx.cn.gov.cn.rdnkx.cn http://www.morning.ybshj.cn.gov.cn.ybshj.cn http://www.morning.yrflh.cn.gov.cn.yrflh.cn http://www.morning.rkyw.cn.gov.cn.rkyw.cn http://www.morning.qwfl.cn.gov.cn.qwfl.cn http://www.morning.yfffg.cn.gov.cn.yfffg.cn http://www.morning.npmx.cn.gov.cn.npmx.cn