Django中静态文件配置

django构建网站的基本操作,这里就不说了。这里只说在我使用Django制作网站的过程中遇到过的一些小事情。

为了使Django能够识别CSS,JS和图片等静态文件,需要在项目根目录下建立static文件夹,并且在settings.py文件中设置如下:

1 STATIC_URL = '/static/'
2 STATIC_ROOT = os.path.join(os.path.dirname(__file__), 'static').replace('\\', '/')
3 STATICFILES_DIRS = (
4     os.path.join(os.path.dirname(__file__), '../static').replace('\\', '/'),
5 )

并且在utls.py文件后面添加

1 urlpatterns += static(STATIC_URL, document_root = STATIC_ROOT)

经过这样设置以后,就可以在HTML文件中引用了

1 <link rel = "stylesheet" href="/static/css/bootstrap.min.css">
2 <script type="text/javascript" src="/static/js/jquery-2.1.1.js"></script>

数据库相关操作

数据库一般使用的是mysql,在本地安装mysql的服务器和客户端后,需要安装myql的python包python-mysql,接着需要在settings.py中对数据库进行配置

 1 DATABASES = {
 2     'default': {
 3         'ENGINE': 'django.db.backends.mysql',
 4         'NAME': 'djangodb',
 5         'USER': 'root',
 6         'PASSWORD': 'root',
 7         'HOST': '127.0.0.1',
 8         'PORT': '3306',
 9     }
10 }

Django模板使用

  1. 在settings.py中配置模板路径
1 TEMPLATE_DEBUG = True
2 TEMPLATE_DIRS = (os.path.join(os.path.dirname(__file__), 'templates').replace('\\', '/'),)

就可以在项目主目录的templates下创建模版了

  1. 模板文件编写

模板本质上是html文件,就是要要成先的网页页面,因此html相应的标签都要有,不同的是模板通过添加变量和模版标签来充实html的内容

*变量用包围,html中会显示该变量的值

*块标签用{%%}包围,html会显示该块标签中定义的内容

一个简单的例子说明一下,html页面是怎么呈现的: 在template目录下定义index.html页面

<html>  
<head><title>模板实例</title></head>  
<body>  
<p>Dear ,</p>  
<p>Here are the items you've ordered:</p>  

<ul>  

{% for item in item_list %}  
<li>{{ item }}</li>  
{% endfor %}  

</ul>  
  
</body>  
</html>

首先,在urls.py中定义url规则,例如网站默认首页显示index.html

1 urlpatterns = patterns('',
2     # Examples:
3     # url(r'^$', 'DeviceWeb.views.home', name='home'),
4     # url(r'^blog/', include('blog.urls')),
5 
6     url(r'^$', index),
7 )

意思是,输入网址会调用views.py中的index函数。 接着在views.py中定义index函数:

1 def index(request):
2 	name='Jack'
3 	items=['aaa', 'bbb', 'ccc']
4     return render_to_response('index.html', {'person_name': name, 'item':items, })

最重要的一句是return,返回index.html页面,并且将后面的变量传递到index.html中,变量是json结构,可以传递多个。这样运行网站,输入http://localhost:8000就可以看到index.html并且显示了相应的变量信息。

Django后台管理

  1. 配置settings.py
1 INSTALLED_APPS = (
2     'django.contrib.admin',  ###添加这句
3     'django.contrib.auth',
4     'django.contrib.contenttypes',
5     'django.contrib.sessions',
6     'django.contrib.messages',
7     'django.contrib.staticfiles',
8     'DevWeb', #自己的项目
9 )
  1. 配置urls.py
1 urlpatterns = patterns('',
2     # Examples:
3     # url(r'^$', 'DeviceWeb.views.home', name='home'),
4     # url(r'^blog/', include('blog.urls')),
5 
6     url(r'^admin/', include(admin.site.urls)),
7     url(r'^$', index),
8 )
  1. 配置admin.py

对在models.py中创建的模型,在admin.py下进行注册,例如: models.py

 1 class CompanyNews(models.Model):
 2     title = models.CharField(max_length=30)
 3     public_time = models.DateTimeField('create date')
 4     content = models.TextField(default='')
 5 
 6     def __unicode__(self):
 7         return self.title
 8 
 9 class CompanyNewsAdmin(admin.ModelAdmin):
10 	pass

admin.py

1 from django.contrib import admin
2 from DevWeb.models import CompanyNews, CompanyNewsAdmin
3 
4 admin.site.register(CompanyNews, CompanyNewsAdmin)

这样运行项目,打开http://localhost:8000/admin就可以看到管理界面了,当然要输入用户名和密码

Django中图片上传操作

后台的图片上传操作django默认是上传到MEDIA_ROOT目录下面的,因此要在settings.py中配置. 由于static下的东西一般是配置了可以在前台显示的,所以一般上传路径也在static下 settings.py

1 MEDIA_ROOT = 'static/media/'
2 MEDIA_URL = '/static/media/'

model.py中需要进行如下设置: model.py

1 class StaticImage(models.Model):
2     image = models.ImageField(default='', blank=True, upload_to='.')
3 
4     def __unicode__(self):
5         return "/static/media/" + str(self.image)
6 
7     class Meta:    
8         verbose_name = '图片文件'  ##用来定义在后台显示该类的名称
9         verbose_name_plural = '图片文件'

则在后台,StaticImage的image域可以用来上传图片

Apache上部署Django Web

将Django部署在Apache上的步骤和配置。 Continue reading

CRF原理及wapiti使用

Published on May 10, 2014

hive简单使用及UDF编写

Published on May 08, 2014