الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

مشروع جماعي : تطبيق BottlePaste

مثبّترائج
بدأه a.atalla في 28 أبريل 2013 · 156 رد · 13,739 مشاهدة · في لغة Python
مشاركة: واتساب X فيسبوك تيليجرام
#26

py gments هي راح نستخدمها في تلوين الكود !!

 

لكي نجعله افضل لنجعل لكل لغة لونها خاص !

salah.jpg

#27
MuStafa - HaSsan كتب:

جعلته على نضام bottle . 

 

 

@route('/thecode',method="POST")
def raw_code(n):
	paste=get_paste(n)
	conte = response.set_header('Content-Type', 'text/plain')
		if conte:
		return HTTPResponse(paste.code,)
		return template('***.tpl')

اذا تقصد هذا

 

حتى اكمله

 

ال raw هي GET request وليست POST

 

لاتحتاج إلى template 

تحتاج للحصول على ال paste فقط وإرسالها داخل ال response

MuStafa - HaSsan كتب:

py gments هي راح نستخدمها في تلوين الكود !!

 

لكي نجعله افضل لنجعل لكل لغة لونها خاص !

ماذا تقصد ؟

 

يوجد ألوان إفتراضية ل pygments هي ماسيتم إستخدامها.

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#28
ahmed_youssef كتب:

ال raw هي GET request وليست POST

 

لاتحتاج إلى template 

تحتاج للحصول على ال paste فقط وإرسالها داخل ال response

ماذا تقصد ؟

 

يوجد ألوان إفتراضية ل pygments هي ماسيتم إستخدامها.

 

نعم انا اخطأت المفروض يتم ارسالها لم انتبه للكود جيدا , المهم هل ماتقصده هو هذا عندما قلت مشابه !

 

حيث اصبح الكود هكذا

 

 

@route('/thecoder/:n)


def raw_code(n):
    paste=get_paste('%s')%int(n)
    conte = response.set_header('Content-Type', 'text/plain')
        if conte:
        return HTTPResponse(paste.code)

 

نعم مكتبة pygments

 

فيها الوان خاصة , ويضا مميزات للخطوط

 

انا اﻻن اعمل عليها><

 

 

فقط اعطني معلومات  عن الشيء الذي سوف افعله

 

راح  اضع لكل لغة لون خاص بها

 

مثل بايثون يوجد لها لون خاص

 

وغيرها هكذا

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 30 أبريل 2013 في 20:01

salah.jpg

#29

لاعلاقة لك بالألوان بالمرة ، كل علاقتك هي إستخدام مكتبة Pygments على نص معين ويعاد لك ملونا

 

أنظر كيف تحصل على lexer حسب اللغة وكيف ستقوم بتلوين ذلك الكود عبر htmlformatter

http://pygments.org/docs/quickstart/

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#30

pygments

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
@route('/new', method="POST")
def new():
	frm = NewPasteForm(request.POST)
	formattedText =highlight(frm.codebody.data, PythonLexer(), HtmlFormatter())
	return template('templates/result.html',form=frm,code= formattedText)

هذه تعرض الكود منسق ولكن غير ملون

 

post-232044-0-30640800-1367346312_thumb.

 

مرفق ملف المشروع  حتي الأن

BottlePaste.7z

تم تعديل هذه المشاركة بواسطة a.atalla في 30 أبريل 2013 في 21:25

#31
a.atalla كتب:

pygments

from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
@route('/new', method="POST")
def new():
	frm = NewPasteForm(request.POST)
	formattedText =highlight(frm.codebody.data, PythonLexer(), HtmlFormatter())
	return template('templates/result.html',form=frm,code= formattedText)

هذه تعرض الكود منسق ولكن غير ملون

 

attachicon.gifbottlpaste.png

 

مرفق ملف المشروع  حتي الأن

 

جميل ولكن القصاصات لن تكون دائما بايثون 

 

يوجد وحدة pygments.lexers يوجد بها بعض الأشياء المفيدة مثل guess_lexer , get_lexer_by_name, get_all_lexers

 

 
from pygments import highlight
from pygments.formatters import HtmlFormatter
from pygments.lexers import get_all_lexers, guess_lexer, get_lexer_by_name

وداخل ال model

 

 
 
    
    def highlighted_code(self):
        lexer=None
        if self.language:
            try:
                lexer=get_lexer_by_name(self.language)
            except:
                lexer=None
        if lexer is None:
            lexer=guess_lexer(self.code)
        formatter=HtmlFormatter(linenos=True)
        return highlight(self.code, lexer, formatter)
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#32

هذا يقوم بتلوين حسب ماخصصته من اسماء الفانكشن (الدوال) والتعليقات والسترينج واسماء المتغيرات

 

from pygments.style import Style
from pygments.token import Keyword, Name, Comment, String


@route('/new', method="POST")
def new():
	frm = NewPasteForm(request.POST)
	formattedText =highlight(frm.codebody.data, PythonLexer(), HtmlFormatter())
	if formattedText:
                info{
                        Name.Function:'#0f0'
                        Name : '#0f0'
                        String:'bg:#eee #111'
                        Comment:'italic #888'
                }

 

فقط عليك ربطه بالقالب , ﻻن ليس لدي القالب انت اربطه وجربه

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 30 أبريل 2013 في 23:21

salah.jpg

#33

الكل بيعمل على كل شئ!! 

 

ياشباب حد ملتزم بالتعامل مع قاعدة البيانات ياريت ينهي كل مايتعلق بيها

 

والمسئول عن التلوين ياريت ينهي كل مايتعلق بيها

 

هذا ملف مساعد لهيكلية ملف app.py لتقوموا بإكماله بما يناسب ... قمت بتوحيد الكود

 

 
 
 
class DBMODEL: 
....
....
....
    def highlighted_code(self):
        pass
       
        
        
    def __str__(self):
        return "(%d, %s, %s, %s, %s)"%(self.id, self.title, self.author, self.language, self.code)
    
def populate_fake():
    p1=Paste(title='simple', author='jack', language='perl', code="$x=3")
    p2=Paste(title='simple', author='ruby', language='ruby', code="x=3\nputs x")
    p3=Paste(title='complex', author='ahmed', language='Python', code="add5=lambda x: x+5")
 ....
....
    #COMPLETE ME TO INSERT DATA TO DATABASE
    
def last(x):
    pass
    
last_five= lambda : last(5)
    
 
settings.init()
 
 
#DON'T TOUCH
#pygments
languages_list=[(l[1][0], l[0]) for l in get_all_lexers()] #tuples of long/short names
languages_list.sort(key = lambda el: el[0])
languages_list.insert(0,('YOU GUESS', ''))
 
 
##DONT TOUCH
@route('/public/<filepath:path>')
def server_static(filepath):
    return static_file(filepath, root=settings.staticdir)
    
 
class PasteForm(Form):
    title = TextField()
    language=SelectField('Language', choices=languages_list)
    author = TextField()
    code = TextAreaField(validators=[validators.required()])
    #created_at
    #hits
    #expires ?
    
@route("/about")
def about():
    return template('templates/about.html')
 
@route("/contact")
def contact():
    return template('templates/contact.html')
 
@error(404)
def error404(error):
    return '404=NOTHING HERE, GO BACK!'
 
@route("/")
def index():
    pass
 
@route('/new', method="POST")
def new():
    pass
 
@route('/view/<n:int>')
def view(n):
    pass
 
@route('/raw/<n:int>')
def raw(n):
    pass
    
@route('/download/<n:int>')
def download(n):
    pass

 

أعتقد هكذا سيكون الموضوع منظم أكثر 

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#34

حسنا انا الذي سوف يكون مسؤل عن التلوين !!

salah.jpg

#35

بفضل الله تعالى تم تلوين الكود بشكل جميل ومنسق

 

@route('/new', method="POST")
def style():
	frm = NewPasteForm(request.POST)
	formattedText =highlight(frm.codebody.data, PythonLexer(), HtmlFormatter())
	if formattedText:
		return template('templates/Language.html',form=frm,code=formattedText)
	else:
		return HtmlFormatter().get_style_defs('.highlight')

And template

 

| |

 *

{% extends 'base.html' %}
{% block content %}
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">

<head>
	<title>untitled</title>
	<meta http-equiv="content-type" content="text/html;charset=utf-8" />

<style type ='text/css'>

.highlight .c { color: #586E75 } /* Comment */
.highlight .k { color: #859900 } /* Keyword */
.highlight .n { color: #93A1A1 } /* Name */
.highlight .cm { color: #586E75 } /* Comment.Multiline */
.highlight .nc { color: #268BD2 } /* Name.Class */
.highlight .ni { color: #CB4B16 } /* Name.Entity */
.highlight .ne { color: #CB4B16 } /* Name.Exception */
.highlight .nf { color: #268BD2 } /* Name.Function */
.highlight .nv { color: #268BD2 } /* Name.Variable */
.highlight .mf { color: #2AA198 } /* Literal.Number.Float */
.highlight .mh { color: #2AA198 } /* Literal.Number.Hex */
.highlight .mi { color: #2AA198 } /* Literal.Number.Integer */
.highlight .mo { color: #2AA198 } /* Literal.Number.Oct */
.highlight .sb { color: #586E75 } /* Literal.String.Backtick */
.highlight .sc { color: #2AA198 } /* Literal.String.Char */
.highlight .vc { color: #268BD2 } /* Name.Variable.Class */
.highlight .vg { color: #268BD2 } /* Name.Variable.Global */

</style>
	
</head>

<body>
	<div class = 'highlight'>
		<span class = 'pr'>print</span>
		<span class = 'c'></span>
		<span class ='k' ></span>
		<span class = 'n'></span>
		<span class = 'cm'></span>
		<span class = 'nc'></span>
		<span class = 'ni'></span>
		<span class = 'ne'></span>
		<span class = 'nf'></span>
		<span class = 'nv'></span>
		<span class = 'mf'></span>
		<span class = 'mh'></span>
		<span class = 'mi'></span>
		<span class = 'mo'></span>
		<span class = 'sb'></span>
		<span class = 'sc'></span>
		<span class = 'vc'></span>
		<span class = 'vg'></span>		
	</div>
	
	<hr>
<h1>BottlePaste</h1>
<hr>

<h3> {{form.codetitle.data}}  by  {{form.codeauthor.data}}</h3>

<div>
	{{code}}
</div>
<form class="form-horizontal" action="/raw" method="post">
<div>
	<h5>Plain Text Code   <button type="submit" class="btn">raw</button></h5>  
	{{form.codebody()}}
</div>
</form>
</body>

</html>
{% endblock %}

 

كان بامكاني ان اجعله افتراضيا بدون css

 

ﻻكن لم اجد له مفهوم ﻻحد مكتبات pygments

 

from pygments.token import Keyword, Name, Comment, String, Error, \
     Number, Operator, Generic

لم اجد له شرح كافي لكي افهمه

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 1 مايو 2013 في 17:52

salah.jpg

#36

قاعدة البيانات

 

 

from sqlalchemy import create_engine
from sqlalchemy import Column , Date , Integer , String
from sqlalchemy.ext.declarative  import  declarative_base
from sqlalchemy.orm import sessionmaker

engine = create_engine('sqlite:///bottlepaste.db',echo=True)
Base = declarative_base()
Session = sessionmaker(bind=engine)


class DBMODEL(Base): 
	__tablename__ = 'pastes'
	
	id = Column(Integer,primary_key=True)
	title = Column(String)
	author = Column(Date)
	language = Column(String)
	code = Column(String)
		
	def highlighted_code(self):
		lexer=None
		if self.language:
			try:
				lexer=get_lexer_by_name(self.language)
			except:
				lexer=None
		if lexer is None:
			lexer=guess_lexer(self.code)
		formatter=HtmlFormatter(linenos=True)
		return highlight(self.code, lexer, formatter)
      
	def __str__(self):
		return "(%d, %s, %s, %s, %s)"%(self.id, self.title, self.author, self.language, self.code)

 

 

ثم  في دالة  new

@route('/new', method="POST")
def new():
	frm = PasteForm(request.POST)
	if not os.path.isfile('bottlepaste.db'):
		Base.metadata.create_all(engine)
	newPaste = DBMODEL (title=frm.codetitle.data,author=frm.codeauthor,language=frm.language.data,code=frm.codebody.data)
	s=Session()
	s.add(newPaste)
	try:
		s.commit()
	except:
		pass

 

عند s.commit  يحدث خطأ غريب  رغم اني فحصت قيم المتغيرات  frm.codetitle  وغيرها عن طريق  type   وكانت  str

 

لا يتم التخزين في قاعدة البيانات

Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/bottle.py", line 764, in _handle
    return route.call(**args)
  File "/usr/lib/python2.7/site-packages/bottle.py", line 1575, in wrapper
    rv = callback(*a, **ka)
  File "app.py", line 108, in new
    s.commit()
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 720, in commit
    self.transaction.commit()
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 353, in commit
    self._prepare_impl()
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 333, in _prepare_impl
    self.session.flush()
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1817, in flush
    self._flush(objects)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1935, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 58, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/session.py", line 1899, in _flush
    flush_context.execute()
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
    rec.execute(self)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 525, in execute
    uow
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 63, in save_obj
    table, insert)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 565, in _emit_insert_statements
    execute(statement, params)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 662, in execute
    params)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 761, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 828, in _execute_context
    None, None)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 1024, in _handle_dbapi_exception
    exc_info
  File "/usr/lib/python2.7/site-packages/sqlalchemy/util/compat.py", line 163, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 824, in _execute_context
    context = constructor(dialect, self, conn, *args)
  File "/usr/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 459, in _init_compiled
    param.append(processors[key](compiled_params[key]))
  File "/usr/lib/python2.7/site-packages/sqlalchemy/dialects/sqlite/base.py", line 297, in process
    raise TypeError("SQLite Date type only accepts Python "
StatementError: SQLite Date type only accepts Python date objects as input. (original cause: TypeError: SQLite Date type only accepts Python date objects as input.) 'INSERT INTO pastes (title, author, language, code) VALUES (?, ?, ?, ?)' [{'code': '', 'author': <wtforms.fields.simple.TextField object at 0x16cbf90>, 'language': u'YOU GUESS', 'title': ''}]

 

سؤال خطر علي بالي :

كيف سنجعل لكل عملية Paste  رابط مميز  ليشاركه المستخدم مع أصدقائه ؟؟

 



بالنسبة للتلوين أظن أن  Pygments  موجودة لهذا الغرض ولا نحتاج  إلي CSS ..... أليس كذلك ؟

#37

نعم انتبه جيدا للكود انا لم استخدم css بشكل كامل !!

 

انضر على ماذا تم اﻻعتماد

salah.jpg

#38

ماافكر فيه اﻻن ان نجعله يضيف رابط مختصر عند الضغط على الزر كما قال اﻻخ احمد

 

ﻻكن لا اعرف كيف افكر فيه

salah.jpg

#39
@مصطفى:

 

بخصوص التلوين أنظر هنا في ال model كيف قمت بتقديم مقترح للتلوين بصورة عامة يقوم بالتخمين إذا لايوجد حقل self.language في ال model

 

 

    

    def highlighted_code(self):

        lexer=None

        if self.language:

            try:

                lexer=get_lexer_by_name(self.language)

            except:

                lexer=None

        if lexer is None:

            lexer=guess_lexer(self.code)

        formatter=HtmlFormatter(linenos=True)

        return highlight(self.code, lexer, formatter)

لاداعي لإستخدام

get_style_defs 

 

فقط قم بوضع هذا في ملف public/css/site.css

 

 

.highlight .c { color: #586E75 } /* Comment */

.highlight .k { color: #859900 } /* Keyword */

.highlight .n { color: #93A1A1 } /* Name */

.highlight .cm { color: #586E75 } /* Comment.Multiline */

.highlight .nc { color: #268BD2 } /* Name.Class */

.highlight .ni { color: #CB4B16 } /* Name.Entity */

.highlight .ne { color: #CB4B16 } /* Name.Exception */

.highlight .nf { color: #268BD2 } /* Name.Function */

.highlight .nv { color: #268BD2 } /* Name.Variable */

.highlight .mf { color: #2AA198 } /* Literal.Number.Float */

.highlight .mh { color: #2AA198 } /* Literal.Number.Hex */

.highlight .mi { color: #2AA198 } /* Literal.Number.Integer */

.highlight .mo { color: #2AA198 } /* Literal.Number.Oct */

.highlight .sb { color: #586E75 } /* Literal.String.Backtick */

.highlight .sc { color: #2AA198 } /* Literal.String.Char */

.highlight .vc { color: #268BD2 } /* Name.Variable.Class */

.highlight .vg { color: #268BD2 } /* Name.Variable.Global */

 

@احمد عطالله: 

الخطأ هو محاولتك لإضافة كائن بايثوني إلى الصف

 

StatementError: SQLite Date type only accepts Python date objects as input. (original cause: TypeError: SQLite Date type only accepts Python date objects as input.) 'INSERT INTO pastes (title, author, language, code) VALUES (?, ?, ?, ?)' [{'code': '', 'author': <wtforms.fields.simple.TextField object at 0x16cbf90>, 'language': u'YOU GUESS', 'title': ''}]

 

الصحيح ربما هوإستدعاء .data على frm.codeauthor

newPaste = DBMODEL (title=frm.codetitle.data,author=frm.codeauthor.data,language=frm.language.data,code=frm.codebody.data)

 

اقتباس

كيف سنجعل لكل عملية Paste  رابط مميز  ليشاركه المستخدم مع أصدقائه ؟؟


ماذا تقصد برابط مميز ؟ 

 

 

اقتباس

 

 

بالنسبة للتلوين أظن أن  Pygments  موجودة لهذا الغرض ولا نحتاج  إلي CSS ..... أليس كذلك ؟

 


ذكرت الحل في البداية، إما إضافة الستايل عبر get_style_def او عبر ملف ال css

 

 

اقتباس

ماافكر فيه اﻻن ان نجعله يضيف رابط مختصر عند الضغط على الزر كما قال اﻻخ احمد

 


عندما ينتهي التطبيق سننظر في الإضافات ، لكن يجب إنها الأساسيات أولا
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#40

ان شاء الله يتم ماقلته استاذ احمد

 

 

 

,

 

اﻻن تم انهاء التلوين مالواجب علي فعله اﻻن

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 1 مايو 2013 في 22:42

salah.jpg

#41

تمام التلوين يعمل بعض اﻷضافة  لملف style.css

تم تعديل هذه المشاركة بواسطة a.atalla في 2 مايو 2013 في 09:30

#42

 قاعدة البيانات تمام :), TYPO

 

مرفق السورس وتم عمل أول push  للمستودع  

 

 

عذرا نسيت إضافة حقل للتاريخ  في النسخة المرفوعة

BottlePaste.7z

تم تعديل هذه المشاركة بواسطة a.atalla في 2 مايو 2013 في 10:37

#43

جيد يعني الكود الكتبته يعمل  بشكل جيد ,

 

جيد واﻻن مالذي بقى

salah.jpg

#44

بقي  sidebar  ويعرض فيه titles   أخر خمس عمليات  Paste  كروابط

#45

جيد باستطاعتنا ان نعمل sidebar

 

ﻻكن هناك مشكلة

 

يجب علينا ان نعمل اضافة الروابط ومن ثم ناتي ﻻضافة السايد بار

 

؟؟؟

salah.jpg

#46

الرابط /new  دائما يحتوي علي الكود الملون هل يمكن تكوين رابط فريد  من title والتحويل إليه

#47

يوجد في ملف base.html قسم خاص لل sidebar

 

 

 
 
                                <div class="span2">
                                  <!--sidebar-->
                                    {%if last5 %}
                                      <hr />
                                      <h3>Last pastes</h3>
                                      <hr />
                                      <ul>
                                      {% for p in last5 %}
                                        <li class="paste-link"><a href="/view/{{p.id}}">{{p.title or 'UNTITLED'}}</a></li>
                                      {% endfor %}
                                      </ul>
                                    {% endif %}
                                        
                                </div>

كل ماعليك هو وضع متغير بإسم last5 وتمريره إلى ال template الذي تريد

 

 

اقتباس

 

الرابط /new  دائما يحتوي علي الكود الملون هل يمكن تكوين رابط فريد  من title والتحويل إليه

ماذا تقصد ؟ 

ضع في بالك أن الحقل title هو حقل إختياري 

تم تعديل هذه المشاركة بواسطة ahmed_youssef في 2 مايو 2013 في 14:07

(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#48
                                        <li class="paste-link"><a href="/view/{{p.id}}">{{p.title or 'UNTITLED'}}</a></li>

لم افهم هذا السطر , ﻻ يوجد ملف باسم view

 

ولدي سؤال اخر مع اي دالة اكتبه هذا المتغير ومالذي سوف يحتوي ؟

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 2 مايو 2013 في 16:54

salah.jpg

#49

هذا في دالة index مثلا 

 

 
 
@route("/")
def index():
    last5=last_five_public()
    title="New paste"
    form= PasteForm()
    return template('templates/new.html', locals())
(map share people)

فضلا لاتقم بمراسلتي من أجل أسئلة لها أقسامها في المنتدى حتى تعم الفائدة على الجميع وللحصول على إجابات أفضل من أعضاء أكثر خبرة.
Weblog
@bitbucket
@xmonader

#50

نعم عرفت ﻻكن فقط مالذي سوف يحتوي متغير last5

تم تعديل هذه المشاركة بواسطة MuStafa - HaSsan في 2 مايو 2013 في 17:38

salah.jpg

مواضيع مشابهة