您的位置:首页 > 数据库 > SQL

django开发基本网页和使用MySQL

2016-01-16 22:11 771 查看

开始一个项目

打开cmd ,进入django的开发目录(自己按个人习惯建议个开发目录)

~/django-admin.pystartprojectmysite,注意,这里的django-admin.py要输入绝对路径

      这样就会在当前目录下创建一个目录 mysite,

      startproject 命令创建一个目录mysite,包含4个文件:    

 

__init__.py :让 Python 把该目录当成一个开发包 (即一组模块)所需的文件。 这是一个空文件,一般你不需要修改它。

manage.py :一种命令行工具,可让你以多种方式与该 Django 项目进行交互。 键入pythonmanage.pyhelp,看一下它能做什么。 你应当不需要编辑这个文件;在这个目录下生成它纯是为了方便。

settings.py :该 Django 项目的设置或配置。 查看并理解这个文件中可用的设置类型及其默认值。

urls.py:django项目的URL设置。 可视其为你的django网站的目录。 目前,它是空的。

运行开发服务器

要运行你的服务器,请切换到你的项目目录里 (cdmysite )。如果你还没准备好,那么运行下面的命令:
python manage.py runserver

你会看到些像这样的
Validating models...

0 errors found.

Django version 1.0, using settings 'mysite.settings'

Development server is running at http://127.0.0.1:8000/
Quit the server with CONTROL-C.

这将会在端口8000启动一个本地服务器, 并且只能从你的这台电脑连接和访问。 既然服务器已经运行起来了,现在用网页浏览器访问http://127.0.0.1:8000/ 。 你应该可以看到一个令人赏心悦目的的淡蓝色Django欢迎页面。 它开始工作了。

创建简单的网页

 1)在上一篇中使用django-admin.pystartproject制作的mysite文件夹中,创建一个叫做views.py的空文件。这个Python模块将包含这一章的视图。
请留意,Django对于view.py的文件命名没有特别的要求,它不在乎这个文件叫什么。但是根据约定,把它命名成view.py是个好主意,这样有利于其他开发者读懂你的代码,正如你很容易的往下读懂本文。
我们的Hello world视图非常简单。 这些是完整的函数和导入声明,你需要输入到views.py文件:

[python]
view plaincopyprint?





from django.http import HttpResponse  
  
def hello(request):  
    return HttpResponse("Hello world")  

from django.http import HttpResponse

def hello(request):
return HttpResponse("Hello world")


这里就不分析代码了

2) 然后在urls.py中添加url调用

[python]
view plaincopyprint?





from django.conf.urls.defaults import *  
  
# Uncomment the next two lines to enable the admin:  
# from django.contrib import admin  
# admin.autodiscover()  
  
urlpatterns = patterns('',  
    # Example:  
    # (r'^mysite/', include('mysite.foo.urls')),  
  
    # Uncomment the admin/doc line below and add 'django.contrib.admindocs'  
    # to INSTALLED_APPS to enable admin documentation:  
    # (r'^admin/doc/', include('django.contrib.admindocs.urls')),  
    ('^hello/$', hello),  
    # Uncomment the next line to enable the admin:  
    # (r'^admin/', include(admin.site.urls)),  
)  

from django.conf.urls.defaults import *

# Uncomment the next two lines to enable the admin:
# from django.contrib import admin
# admin.autodiscover()

urlpatterns = patterns('',
# Example:
# (r'^mysite/', include('mysite.foo.urls')),

# Uncomment the admin/doc line below and add 'django.contrib.admindocs'
# to INSTALLED_APPS to enable admin documentation:
# (r'^admin/doc/', include('django.contrib.admindocs.urls')),
('^hello/$', hello),
# Uncomment the next line to enable the admin:
# (r'^admin/', include(admin.site.urls)),
)


在cmd下,cd 到mysite所在目录,输入python manage.py runserver,启动网页服务
然后在浏览器输入http://127.0.0.1:8000/hello/
即可看到我们熟悉的界面,Hello World!

Django站点管理(使用MySQL)

1)修改settings.py

[python]
view plaincopyprint?





DATABASES = {  
    'default': {  
#        'ENGINE': 'django.db.backends.sqlite3',  
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),  
        'ENGINE': 'django.db.backends.mysql',  
        'NAME': 'test',  
        'USER': 'root',  
        'PASSWORD': '123456',  
          
  
  
    }  
}  

DATABASES = {
'default': {
#        'ENGINE': 'django.db.backends.sqlite3',
#        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
'ENGINE': 'django.db.backends.mysql',
'NAME': 'test',
'USER': 'root',
'PASSWORD': '123456',

}
}


这里的用户名密码换成自己的

现在我们可以创建数据库表了。 首先,用下面的命令对校验模型的有效性:
python manage.py validate

确定数据库连接正确的,就可以创建app了,执行python manage.py startapp books

它将mysite 的目录里创建了一个
books 目录,如下结构

books/
__init__.py
models.py
tests.py
views.py
修改books/models.py 

[python]
view plaincopyprint?





from django.db import models  
  
# Create your models here.  
class Publisher(models.Model):  
    name = models.CharField(max_length=30)  
    address = models.CharField(max_length=50)  
    city = models.CharField(max_length=60)  
    state_province = models.CharField(max_length=30)  
    country = models.CharField(max_length=50)  
    website = models.URLField()  
  
class Author(models.Model):  
    first_name = models.CharField(max_length=30)  
    last_name = models.CharField(max_length=40)  
    email = models.EmailField()  
  
class Book(models.Model):  
    title = models.CharField(max_length=100)  
    authors = models.ManyToManyField(Author)  
    publisher = models.ForeignKey(Publisher)  
    publication_date = models.DateField()  

from django.db import models

# Create your models here.
class Publisher(models.Model):
name = models.CharField(max_length=30)
address = models.CharField(max_length=50)
city = models.CharField(max_length=60)
state_province = models.CharField(max_length=30)
country = models.CharField(max_length=50)
website = models.URLField()

class Author(models.Model):
first_name = models.CharField(max_length=30)
last_name = models.CharField(max_length=40)
email = models.EmailField()

class Book(models.Model):
title = models.CharField(max_length=100)
authors = models.ManyToManyField(Author)
publisher = models.ForeignKey(Publisher)
publication_date = models.DateField()


再次编辑settings.py,

# Application definition

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'books',
)

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',
)


books如果出错的话,就将books改成mysite.books,我用的是books,没有问题

执行

python manage.py syncdb


执行这个命令后,将看到类似以下的内容:
Creating table books_publisher
Creating table books_author
Creating table books_book
Installing index for books.Book model

这时进入mysql,可以查看这些表已经创建

最后 将你的Models加入到Admin管理中

admin.py

[python]
view plaincopyprint?





from django.contrib import admin  
  
# Register your models here.  
from books.models import Publisher, Author, Book  
  
class AuthorAdmin(admin.ModelAdmin):  
    list_display=('first_name','last_name','email')  
    search_fields=('first_name','last_name')  
  
admin.site.register(Publisher)  
admin.site.register(Author,AuthorAdmin)  
admin.site.register(Book)  

from django.contrib import admin

# Register your models here.
from books.models import Publisher, Author, Book

class AuthorAdmin(admin.ModelAdmin):
list_display=('first_name','last_name','email')
search_fields=('first_name','last_name')

admin.site.register(Publisher)
admin.site.register(Author,AuthorAdmin)
admin.site.register(Book)


当这一切都配置好后,现在你将发现Django管理工具可以运行了。 启动开发服务器(如前:`` python manage.py runserver`` ),然后在浏览器中访问:http://127.0.0.1:8000/admin/

就是简单的用户登录,然后就可以看到数据库的表,可以可视化的操作这些表了~

Django的MVC架构

M: 即model,数据存取部分,由django数据库层处理

V: 即View,选择显示哪些数据要及怎样显示的部分,由视图和模板处理

C: 即Control,根据用户输入委派视图的部分,由 Django 框架通过按照 URLconf 设置,对给定 URL 调用合适的 python 函数来自行处理。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  django mysql